Описание
Angora Trading System — BB + RSI Range Grid cBot
--------------------------------------------------
ОБЗОР
Angora Trading System — это cBot, основанный на стратегии возврата к среднему. Он ищет цену, растянутую до края полос Боллинджера, при этом RSI подтверждает состояние перекупленности или перепроданности, и торгует движением обратно к средней полосе. Индикатор ADX определяет, находится ли рынок в боковом движении или тренде, поэтому бот торгует только тогда, когда условия подходят для такого подхода. Опциональная сетка на основе ATR может добавлять позиции в корзину, когда цена движется против первой сделки. Все ноги используют один общий стоп-лосс для корзины, который отправляется брокеру с каждым ордером.
Бот был разработан и протестирован на BTCUSD, US30, XAUUSD, EURUSD, GBPUSD и USDJPY на таймфрейме M15. Он работает с любым символом и таймфреймом, но рекомендуется проводить бэктест и настраивать параметры для каждого инструмента.
ИСПОЛЬЗУЕМЫЕ ИНДИКАТОРЫ
- Полосы Боллинджера: зоны входа (верхняя и нижняя полоса) и цель выхода (средняя полоса или противоположная полоса).
- RSI (Индекс относительной силы): подтверждает условия перекупленности и перепроданности для входов и добавлений в сетку.
- ADX с +DI / -DI (Система направленного движения): определяет режим рынка (флэт или тренд) и направление тренда, а также запускает выход при пробое тренда.
- ATR (Средний истинный диапазон): масштабирует все в соответствии с текущей волатильностью, включая шаг сетки, расстояние стопа корзины, фильтр ширины полос, фильтр расстояния до цели и фильтр спреда.
Все сигналы используют только закрытые бары, поэтому они не перерисовываются.
КАК ОН ТОРГУЕТ
1) Режим рынка (ADX)
- ADX ниже "ADX Max Entry" (по умолчанию 25) = ФЛЭТ. Бот торгует развороты от полос в обе стороны.
- ADX между "ADX Max Entry" и "Trend ADX Max" (по умолчанию 25-45) = ТРЕНД, если включен режим согласования с трендом. Бот торгует откаты только в направлении тренда: покупает нижнюю полосу при восходящем тренде (+DI > -DI) и продает верхнюю полосу при нисходящем тренде (-DI > +DI).
- ADX выше "Trend ADX Max" = новых входов нет (экстремальное или параболическое движение).
- В режиме ФЛЭТ входы пропускаются, если ADX быстро растет, так как может начинаться новый тренд.
2) Сигнал входа
- Режим повторного входа (по умолчанию): предыдущий бар коснулся или закрылся за пределами полосы, а последний бар закрылся обратно внутри. RSI должен быть в зоне перепроданности (покупка) или перекупленности (продажа) на одном из последних двух баров.
- Режим касания: достаточно, чтобы бар коснулся полосы и выполнялось условие RSI.
- Фильтры: минимальная ширина полос Боллинджера (избегает сжатий и условий перед прорывом), минимальное расстояние до цели (движение должно быть достаточно большим, чтобы покрыть издержки), спред, сессия и защитные параметры счета.
3) Сетка (опционально)
- Когда цена движется против корзины на "Grid Step" x ATR, бот добавляет новую ногу в том же направлении, всего до "Max Grid Levels" ног. Закрытые ноги также учитываются в этом лимите.
- Для добавления в сетку RSI должен оставаться близко к экстремальной зоне, а ADX — ниже лимита сетки. В режиме тренда DI должен по-прежнему указывать в сторону корзины.
- Все ноги используют один общий стоп-лосс корзины, размещенный за последним возможным уровнем сетки. Он отправляется с каждым ордером, поэтому ни одна позиция не открыта без стоп-лосса.
- Добавления в сетку не выполняются, когда активна защита прибыли.
4) Выходы
- Цель: цена достигает средней полосы (или противоположной полосы), и прибыль корзины как минимум "Min Basket Profit at Target".
- Защита прибыли: фиксация безубыточности и трейлинг минимальной прибыли (см. ниже).
- Максимальный убыток корзины (в R), плюс стоп-лосс корзины на стороне брокера.
- Мягкий тайм-аут (закрытие при безубыточности или лучше после N баров) и жесткий тайм-аут (закрытие после N баров).
- Выход при пробое тренда: закрывает убыточную корзину, когда ADX поднимается выше порога, а DI меняет направление против корзины.
ЧТО ТАКОЕ "R"?
Бот измеряет риск и прибыль в R:
- 1R (корзина) = общая сумма потерь, если заполнены все уровни сетки и сработал стоп-лосс корзины.
- Rp (защита) = риск первой ноги до стоп-лосса корзины. Пороги защиты прибыли по умолчанию используют Rp, чтобы оставаться разумными при включенной сетке. При выключенной сетке R и Rp совпадают.
ПАРАМЕТРЫ
[Торговля]
- Использовать фиксированный объем: ВКЛ = каждая нога использует "Фиксированный объем на ногу". ВЫКЛ = размер позиции рассчитывается из "Риска корзины %".
- Фиксированный объем на ногу (лоты): размер лота каждой ноги при включенном фиксированном объеме. По умолчанию 0.01.
- Риск корзины %: процент капитала, потерянный, если заполнены все уровни сетки и сработал стоп корзины (1R). Используется при выключенном фиксированном объеме. По умолчанию 2.
- Максимальный объем на ногу (лоты): жесткий лимит на размер любой отдельной ноги. По умолчанию 1.0.
- Охлаждение после убытка (бары): количество баров ожидания после убыточной корзины. По умолчанию 4.
- Максимальное проскальзывание (пункты): выше 0, ордера отправляются как рыночные с ограничением проскальзывания. 0 = обычный рыночный ордер.
- Метка / Суффикс автотега: метка позиции. При включенном суффиксе метка становится Label_Symbol_Timeframe, чтобы несколько экземпляров могли работать без конфликтов.
[Bollinger & RSI]
- Период BB / Стандартное отклонение BB / Тип скользящей средней BB: настройки полос Боллинджера. По умолчанию 20 / 2.0 / Простая.
- Период RSI: по умолчанию 14.
- RSI перепроданность (ПОКУПКА) / RSI перекупленность (ПРОДАЖА): пороги RSI в режиме ФЛЭТ. По умолчанию 30 / 70.
[Вход]
- Режим входа: ReEntry (по умолчанию) или Touch.
- Минимальная ширина полосы (xATR): полосы должны быть как минимум на столько ATR разнесены. По умолчанию 2.0.
- Минимальное расстояние до цели (xATR): расстояние от входа до цели должно быть как минимум столько ATR. По умолчанию 0.8.
- Разрешить покупку / Разрешить продажу: включить или отключить каждое направление.
[Режим тренда]
- Использовать режим согласования с трендом: позволяет входы по откату в направлении тренда, когда ADX выше порога флэта. По умолчанию ВКЛ.
- Максимум ADX для тренда: новых входов нет выше этого значения ADX. По умолчанию 45.
- Минимальный спред DI для тренда: минимальная разница между +DI и -DI для подтверждения направления тренда. По умолчанию 5.
- RSI перепроданность / перекупленность для тренда: более мягкие пороги RSI для откатов. По умолчанию 40 / 60.
- Множитель шага сетки для тренда: умножает шаг сетки для трендовых корзин. По умолчанию 1.5.
- Максимум уровней сетки для тренда: максимальное количество ног в трендовой корзине. По умолчанию 3.
[ADX & ATR]
- Период ADX: по умолчанию 14.
- Максимум входа ADX: порог ФЛЭТ / ТРЕНД. По умолчанию 25.
- Отслеживание наклона ADX / Максимальный рост наклона ADX: пропускает входы во ФЛЭТ, если ADX вырос больше этого значения за период отслеживания. По умолчанию 3 бара / 3.0 (0 = выключено).
- Период ATR: по умолчанию 14.
[Сетка]
- Использовать сетку: включить или отключить добавления в сетку. По умолчанию ВКЛ.
- Шаг сетки (xATR): расстояние между ногами сетки против движения. По умолчанию 1.0.
- Максимум уровней сетки: максимальное количество ног в корзине, включая первый вход. По умолчанию 4.
- Множитель объема сетки: множитель лота на уровень. 1.0 = равные лоты (рекомендуется). Значения выше 1.3 вызывают предупреждение о мартингейле.
- Буфер стопа (xATR): расстояние стопа корзины за последним уровнем сетки. По умолчанию 1.5.
- Добавление в сетку требует RSI / Буфер RSI для добавления в сетку: нога сетки добавляется только если RSI находится в пределах порога плюс этот буфер. По умолчанию ВКЛ / 10.
- Максимум ADX для сетки: добавления в сетку не выполняются выше этого значения ADX (для флэт-корзин). По умолчанию 30.
- Минимальный интервал между добавлениями в сетку (сек): минимальное время между попытками добавления в сетку. По умолчанию 60.
[Выход]
- Цель выхода: MiddleBand (по умолчанию) или OppositeBand.
- Минимальная прибыль корзины при достижении цели (R): выход по цели срабатывает только если прибыль корзины как минимум столько. По умолчанию 0.05.
- Максимальный убыток корзины (R): закрывает корзину при этом убытке. По умолчанию 1.0 (0 = выключено).
- Мягкий тайм-аут (бары): после этого количества баров закрывает, как только корзина безубыточна или лучше. По умолчанию 32.
- Жесткий тайм-аут (бары): всегда закрывает после этого количества баров. По умолчанию 96.
- Использовать выход при пробое тренда / Порог ADX для выхода при пробое тренда: закрывает убыточную корзину, когда ADX достигает этого уровня и DI направлен против позиции. По умолчанию ВКЛ / 35.
[Защита прибыли]
- Использовать защиту прибыли: по умолчанию ВКЛ.
- База защиты R: FirstLeg (по умолчанию, рекомендуется с сеткой) или FullBasket.
- Триггер BE / Блокировка BE (R): как только максимальная прибыль достигает триггера, обеспечивается минимальная прибыль, равная блокировке. По умолчанию 0.75 / 0.1.
- Начало трейла / Доля удержания трейла: как только максимальная прибыль достигает начала трейла, бот удерживает эту долю от максимума. Пол ограничивается только движением вверх. По умолчанию 2.0 / 0.5.
- Переместить стоп-лосс брокера на пол: конвертирует защищенную прибыль в цену и перемещает стоп-лосс каждой ноги туда, чтобы прибыль была защищена и на стороне брокера. По умолчанию ВКЛ.
- Использовать частичный тейк-профит / Частичный тейк-профит (R) / Доля частичного закрытия: закрывает часть корзины при заданной прибыли. По умолчанию ВЫКЛ.
- Фиксированный тейк-профит (R): закрывает всю корзину при фиксированной прибыли, независимо от полос. 0 = выключено.
[Фильтры рынка]
- Максимальный спред (пункты) / Максимальный спред (xATR): пропускает входы и добавления в сетку, если спред слишком широк. По умолчанию выключено / 0.2 x ATR.
- Использовать фильтр сессии / Начало / Конец сессии (UTC): торговать только в указанные часы. По умолчанию ВЫКЛ.
- Блокировать входы в выходные / Время окончания торговли в пятницу: опциональная защита выходных.
[Защита счета]
- Максимальный дневной убыток (% капитала) / Закрывать позиции при достижении дневного лимита: останавливает новые входы на остаток дня и может закрывать открытые позиции. По умолчанию 5% / ВКЛ.
- Максимальная просадка (% от максимума капитала) / Останавливать бота при максимальной просадке: закрывает все и может остановить бота. По умолчанию 20% / ВКЛ.
- Максимальное количество сделок в день: 0 = неограниченно.
- Максимальный общий риск (% капитала): лимит на общий открытый риск до стоп-лосса. По умолчанию 3%. Всегда применяется при расчете размера позиции по проценту риска.
- Применять лимит риска в фиксированном режиме: также применяет вышеуказанный лимит при включенном фиксированном объеме. По умолчанию ВЫКЛ.
[Лог]
- Уровень логирования: Тихий, Нормальный или Подробный.
- Печатать строки сделок в CSV: печатает одну строку CSV на завершенную корзину для удобного анализа.
БЕЗОПАСНОСТЬ ПРИ ПЕРЕЗАПУСКЕ И ОТЧЕТНОСТЬ
- После перезапуска или переподключения бот восстанавливает открытую корзину (направление, ноги, стоп, реализованная прибыль) из комментариев к позициям и истории сделок.
- При остановке бот выводит сводку статистики: сделки, процент побед, коэффициент прибыли, средний выигрыш и убыток, максимальная просадка и серия убыточных сделок, а также результаты, сгруппированные по причинам выхода (например, ФЛЭТ/цель, ТРЕНД/фиксация прибыли).
НАЧАЛО РАБОТЫ
1. Запустите бэктест на вашем символе и таймфрейме с параметрами по умолчанию, используя тиковые данные и период не менее 3-6 месяцев.
2. Проверьте строки "СТАТИСТИКА ПО ПРИЧИНАМ" в логе, чтобы увидеть, какие выходы приносят прибыль или убыток.
3. Держите сетку консервативной: равные лоты (Grid Volume Mult = 1.0) и 3-4 уровня.
4. Держите риск на корзину (или фиксированный лот) на уровне, при котором защитный лимит дневного убытка не срабатывает при обычных сделках.
5. Проведите форвард-тест на демо-счете перед торговлей на реальном счете.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ ЗА РИСКИ
Торговля с использованием кредитного плеча, таких продуктов как CFD и криптовалюты, связана с высоким уровнем риска и может быть не подходит для всех инвесторов. Стратегии сетки и усреднения могут увеличивать убытки во время сильных трендов. Прошлые результаты, включая результаты бэктестов, не гарантируют будущих результатов. Используйте этот cBot на свой страх и риск и только с капиталом, который вы можете позволить себе потерять.
Сводка
The system supports an optional ATR-based grid that adds positions when the price moves against the initial entry, with all legs sharing a single basket stop loss sent to the broker. Exits include reaching target bands, profit protection via break-even locks and trailing stops, basket max loss limits, time-based exits, and trend-break exits triggered by ADX signals.
Designed and tested on multiple instruments including BTCUSD, US30, XAUUSD, EURUSD, GBPUSD, and USDJPY on the M15 timeframe, it is adaptable to other symbols and timeframes with parameter adjustments. Risk and profit are measured in "R" units, representing the basket risk. The bot includes configurable parameters for trading volume, grid settings, market filters, and risk management tools such as stop loss, take profit, trailing stop, break-even management, and daily loss guards. It supports market orders and reconstructs open positions after restarts for continuity.
