Logo hamster-bot
RU EN PT

Загрузка…

Бэктест - это процесс проверки торговой стратегии на исторических данных. Он позволяет трейдерам оценить эффективность своей стратегии и выявить ее сильные и слабые стороны. Бэктестирование помогает понять, как стратегия будет работать в различных рыночных условиях и позволяет оптимизировать ее параметры для достижения лучших результатов.

Все стратегии, которые представлены ниже, можно протестировать на исторических данных в тестере стратегий TradingView.

hw98_console_prompt.avif В бота встроен свой продвинутый бектестер позволяющий корректно протестировать целые торговые системы и все возможности торгового бота! Описание тестера: hamster-bot/bot/backtesting


hamster-bot

Торгуйте любую идею и любую стратегию
Возможно добавление любой вашей стратегии в hamster-bot - просто оставьте свой запрос через форму или свяжитесь со мной напрямую

Полноценная реализация стратегии. Это не торговля по алертам. Управление ордерами и позицией в реальном времени.

Если стратегии у вас нет но есть идея - Отлично! Оставьте заявку на проверку идеи и составление торговой стратегии с последующей проверкой идеи на исторических данных.

Сводная таблица стратегий
СтратегияТипВходДокупкиСлабое место
Strategy Trend Zig Zag, ZZ (ZZ2, ZZ6)тренд, пробойстоп-ордер на уровненетбоковик, V-развороты
ZigZag Double, ZigZag MarketOrder, ZZ-Double-Market-Filterтренд, пробойстоп-ордер / рыночныйнетбоковик, V-развороты
Donchian Channelтренд, пробойстоп-ордер на границе каналанетбоковик
Channel Close Strategyтренд, пробойрыночный по закрытию свечинетбоковик
RiskTurtleтренд, пробойстоп-ордер на границе каналанетбоковик
Moving Average Crossoverтрендрыночный по пересечению MAопциональнобоковик
Price vs MAтрендрыночный по пересечению цены и MAопциональнобоковик
MACD Trendтрендрыночный по пересечению MACDопциональнобоковик
DoubleDragonтренд, пара монетрыночныйнетбоковик соотношения
MRSконтртрендлимитный на линии MAда (несколько MA)сильный тренд без отката
MRS2, MRS2 FASTконтртрендлимитный на линии MAнетсильный тренд без отката
MRS3контртрендлимитный на линии MAда (несколько MA)сильный тренд без отката
HiDeepконтртрендрыночный по закрытию свечидазатяжное падение
RedFlagконтртренд, только longрыночный внутри свечидазатяжное падение
SmartProfitусреднение, только longрыночный + сетка лимитныхда (сетка)затяжное падение
ShadowOverlapконтртренд, отбой от тенирыночный или лимитныйнетпробой уровня
TV MAPMконтртрендрыночный по сигналу MACDдазатяжной тренд
MZоткат после импульсалимитныйнет (мартингейл после убытка)серия убытков
Volume Marketнабор торгового объемарыночныйнеткомиссии

Трендовые стратегии:

ZigZag, ZZ, ZZ-2, ZZ-6

Отдельная страница стратегии →

Основная идея стратегии - словить как можно раньше сильное трендовое движение рынка и удерживать позицию на протяжении тренда. Сделка открывается в момент пробоя заранее построенных уровней по прошлым максимумам/минимумам цен.

В основе лежит логика, похожая на индикатор ZigZag:
● Когда рынок начинает разворачиваться вверх, фиксируется локальный минимум
● Когда разворачивается вниз — локальный максимум
Эти точки становятся ориентирами. Из них формируются уровни, которые рынок должен пробить, чтобы подтвердить движение.

Реверсивная (flip long ↔ short)
Позиция всегда открыта и переворачивается из short в long. (Если не используются модификаторы стратегии - они описаны ниже в блоке «Параметры и модификаторы»)

⚠️ Стратегия генерирует убыточные сделки когда рынок в боковике и во время V-образных разворотов.

Рабочий тип ордера: Рыночный Стоп ордер (На некоторых биржах может еще называться как Условный или Триггерный)

Пример установки условных ордеров

● Зеленым цветом обозначено где устанавливается условный ордер на покупку. Пробой последнего значимого максимума.
● Красным на продажу. Цена пробивает последний минимум.

После запуска стратегии если нет позиции и цена находится между уровней то будут установлены 1 ордер на открытие long позиции и 1 на short. Если цена не между уровней или есть открытая позиция то будет установлен 1 ордер.

Если открыта позиция то по стратегии должен быть только 1 ордер. По умолчанию размер этого ордера будет = размер позиции * 2. Чтобы перевернуть позицию (закрыть и открыть новую на такой же размер)

Strategy Trend Zig Zag и ZZ - в чем разница

Strategy Trend Zig Zag (zigzag, выбрана по умолчанию при создании бота) - простой вариант с минимумом настроек, аналог скрипта «Простая трендовая стратегия» в TradingView. Уровни строятся так же, как в ZZ2, позиция переворачивается стоп-ордерами. Модификаторы и фильтры из блока «Параметры и модификаторы» в нем не используются.

  • length - глубина поиска разворота (по умолчанию 5)
  • detection - длина сглаживающей EMA (по умолчанию 3)

ZZ (zz) - полная версия: два типа уровней (ZZ2 и ZZ6) и все модификаторы, фильтры и настройки размера позиции, описанные ниже.

Типы уровней: ZZ2 и ZZ6

ZZ2 (по умолчанию) - уровни строятся по точкам разворота сглаженной цены. Подробно алгоритм разобран в блоке «Для любознательных».
depth - глубина поиска разворота (по умолчанию 5)
detection, detection_type, detection_source - длина, тип (по умолчанию EMA) и источник цены сглаживающей линии, по развороту которой определяются точки
rsi_len, rsi_value - дополнительное условие по RSI для точки разворота. При rsi_value = 0 не используется

ZZ6 - уровни строятся по двум каналам максимумов/минимумов: быстрому длиной zz6_len и медленному длиной zz6_len_slow (если не задана - zz6_len * 3). Уровень фиксируется, когда быстрый и медленный канал совпали (цена обновила экстремум) и быстрый канал начал разворачиваться.
В ZZ6 размер позиции зависит от риска: чем шире расстояние между уровнями (а значит дальше стоп), тем меньше лот.

  • zz6_risklong, zz6_riskshort - риск в % на сделку. Лот = базовый лот * (риск % / расстояние между уровнями в %)
  • zz6_risk_one - использовать для short тот же риск, что и для long (zz6_risklong)
  • zz6_risk_max - ограничение сверху для этого множителя лота
Параметры и модификаторы

Режим работы

  • reverse - обратный (контртрендовый) режим. При пробое верхнего уровня бот открывает short, при пробое нижнего - long. Ордера в этом режиме рыночные
  • always_in_position - если позиции нет, а цена уже ушла за уровень (например после закрытия по стопу или тейку), бот сразу входит рыночным ордером по направлению пробоя
  • one_entry_long, one_entry_short - один вход на каждый новый уровень. Если позиция по уровню уже закрылась (например по тейку или стопу), повторно на этом же уровне бот не входит
  • single_entry - усиливает предыдущую опцию: запрет повторного входа снимается не новым уровнем, а только после входа в противоположную сторону

Настройка уровней

  • level_offset_long, level_offset_short - сдвиг уровня на фиксированную величину в цене
  • level_multiplier_long, level_multiplier_short - сдвиг уровня в процентах. 1 - без сдвига, 1.01 - на 1% выше
  • angle_long, angle_short - наклон уровня. Уровень умножается на это значение на каждой новой свече и постепенно смещается к цене. 1 - горизонтальный уровень

Фильтры входа

Когда фильтр запрещает вход, бот не открывает новую позицию, но ордер на закрытие текущей позиции по противоположному уровню остается.

  • use_distance_filter, distance_filter - не входить, если расстояние между уровнями больше заданного % (слишком далекий стоп)
  • use_flat_filter, flat_filter - не входить, если расстояние между уровнями меньше заданного % (признак боковика)
  • use_narrowing - торговать только когда уровни сужаются: последний максимум ниже предыдущего, а последний минимум выше предыдущего
  • use_ma_filter, ma_filter - не переворачиваться, если быстрая MA уже ушла от медленной дальше чем на заданный % против нового направления
  • use_ma_distance_filter, ma_distance_filter - не входить, если быстрая и медленная MA ближе друг к другу чем заданный % (нет импульса)
  • ma_fast_*, ma_slow_* - тип, длина и источник быстрой и медленной MA для двух фильтров выше
  • filter_only_open - фильтры по расстоянию действуют только на открытие позиции, переворот из уже открытой позиции разрешен
  • Трендовый фильтр (блок filter, общий для ZZ и HiDeep) - см. раздел «Закрытие позиции и общие опции»

Размер позиции

  • use_auto_risk - авториск для ZZ2. Множитель лота плавно меняется от auto_risk_coeff_start до auto_risk_coeff_end в зависимости от расстояния между уровнями: от auto_risk_procent_start до auto_risk_procent_end %. Узкий канал - больше лот, широкий - меньше
  • count_pnl_profit, count_pnl_loss - при перевороте добавлять к размеру новой позиции прибыль или убыток текущей
  • size_control - защита от задвоения: если позиция случайно стала больше двух входов, лишнее закрывается рыночным ордером

Закрытие позиции

  • use_tp_between_levels, tp_between_levels_value - закрыть позицию в прибыли, если цена вернулась внутрь канала между уровнями и прибыль не меньше заданного %
  • stop_by_new_level - стоп по новому уровню. Если после входа цена пробила новый уровень в сторону позиции, а затем вернулась к нему - позиция закрывается
  • close_on_wrong_side - закрыть позицию, если цена ушла за противоположный уровень больше чем на 1% (например стоп-ордер не сработал из-за гэпа)
  • use_close_on_levels_crossing - закрыть позицию, если уровни пересеклись (верхний стал ниже нижнего)
  • from_level_price - считать тейк-профит и минимальную прибыль от цены уровня, а не от фактической цены входа
Бэктест
Протестировать во встроенном бэктестере

Скрипт (PineScript) для тестирования стратегии на исторических данных в тестере стратегий TradingView:

Рекомендации: (не строгие и их можно нарушать в исследовательских целях)
Рабочий таймфрейм от 4ч и выше.

Рекомендуемый таймфрейм

Для любознательных

Алгоритм построения уровней стратегии ZZ2. Используется не стандартный индикатор ЗигЗаг. Из кода видно как все просто и перерисовка исключена. Но уровни строятся с задержкой в несколько свечей (это абсолютно не мешает стратегии)

Фрагмент кода алгоритма ZZ2

Используются три последовательно сглаженные EMA. Это создает сильное сглаживание, уменьшая шум.
Переменная z фиксирует точки разворота. Если EMA разворачивается вверх → берется локальный минимум (l). Если вниз → локальный максимум (h). Эти точки (l и h) становятся основой для построения уровней.

ZigZag Double, ZigZag MarketOrder, ZZ-Double-Market-Filter

Отдельная страница стратегии →

Варианты ZigZag с раздельными настройками для long и short. Уровень покупки строится по одному ZigZag (long_length, long_detection), уровень продажи - по другому (short_length, short_detection). Так можно, например, входить в long по более чувствительным уровням, а в short по более грубым.

Бот прогоняет стратегию по истории и хранит «виртуальную позицию». Если по истории позиция в эту сторону уже открыта (например реальная позиция закрылась по тейку или стопу), повторный вход в ту же сторону не делается - бот ждет следующего сигнала.

Как и в остальных ZigZag-стратегиях, позиция закрывается, если уровни пересеклись (верхний ниже нижнего) или цена ушла за противоположный уровень больше чем на 1%.

Параметры
  • long_length, long_detection - глубина поиска разворота и длина EMA для уровня long (по умолчанию 5 и 3)
  • short_length, short_detection - то же для уровня short (по умолчанию 5 и 3)

Только для ZZ-Double-Market-Filter

  • screener_up_threshold_pct, screener_bars_back - сигнал скринера: цена выросла от минимального закрытия за последние screener_bars_back свечей на заданный % (по умолчанию 5% за 3 свечи). 0 - скринер никогда не срабатывает
  • screener_use_24h_vol_filter, screener_min_24h_vol_usdt - дополнительно требовать оборот за 24 часа не меньше заданного в USDT (по умолчанию 1 000 000)
  • screener_use_vol_growth_filter, screener_vol_growth_candles, screener_vol_growth_threshold_pct - объем текущей свечи должен быть больше минимального объема за N свечей на заданный % (по умолчанию 15 свечей, 50%)
  • screener_use_low_filter - входить в long, только если текущая свеча касалась уровня
  • use_tema_filter, tema_length, tema_src - трендовый фильтр по TEMA (по умолчанию 200, close): long только когда TEMA растет, short только когда падает

Когда скринер срабатывает, для бота «открываются ворота» и разрешается одна сделка по сигналам ZigZag. После того как эта сделка закрылась, ворота закрываются до следующего сигнала скринера.

Donchian Channel

Отдельная страница стратегии →

Классическая стратегия пробоя канала Дончиана. Верхняя граница канала - максимум за N свечей, нижняя - минимум за N свечей, центр - середина между ними.

Вход: стоп-ордер на покупку на верхней границе и стоп-ордер на продажу на нижней. Ордера на вход выставляются только после того, как цена вернулась к центру канала. Это защищает от входа в уже растянутое движение сразу после предыдущей сделки.
Выход: стоп-лосс - стоп-ордер по центру канала, тейк-профит - лимитный ордер на заданный % за границей канала. Уровни стопа и тейка двигаются вместе с каналом.

⚠️ Как и любая стратегия пробоя, теряет на боковике: цена касается границы и возвращается к центру.

Рабочий тип ордера: Рыночный Стоп ордер (вход и стоп) и Лимитный (тейк-профит).

Параметры
  • channel_len - длина канала в свечах (по умолчанию 25)
  • use_tp, tp - включить тейк-профит и его отступ в % от границы канала (по умолчанию 10%)
  • Если цена ушла за противоположную границу канала больше чем на 1%, позиция закрывается рыночным ордером (защита на случай гэпа)
Бэктест
Протестировать во встроенном бэктестере

Код скрипта (PineScript) для тестера стратегий TradingView «[TV] Donchian Channel» доступен в интерфейсе бота на странице стратегии.

[TV] Channel Close Strategy

Отдельная страница стратегии →

Самый простой вариант пробоя канала Дончиана с одним параметром. Хорошо подходит для знакомства с трендовыми стратегиями.

Когда свеча закрывается выше максимума за предыдущие N свечей - покупка. Когда закрывается ниже минимума - продажа. Позиция переворачивается.
Все действия происходят по закрытию свечи рыночным ордером, поэтому стратегия одинаково работает в тестере и на реальном рынке.

⚠️ Теряет на боковике и на ложных пробоях.

Параметры
  • len - длина канала в свечах (по умолчанию 10)
  • Если цена ушла за противоположную границу канала больше чем на 1%, позиция закрывается рыночным ордером
RiskTurtle (Donchian Channel + управление риском)

Отдельная страница стратегии →

Развитие идеи «черепах»: вход по пробою медленного канала Дончиана, защитный выход по центру быстрого канала.

Главное отличие - размер позиции считается от риска. Расстояние от точки входа до центра быстрого канала - это потенциальный убыток. Бот подбирает размер позиции так, чтобы этот убыток был равен заданному % депозита. Узкий канал - позиция больше, широкий - меньше.

Рабочий тип ордера: Рыночный Стоп ордер.

Параметры
  • slow_channel_len - длина медленного канала, по границам которого ставятся ордера на вход (по умолчанию 50)
  • fast_channel_len - длина быстрого канала, центр которого используется для защитного закрытия (по умолчанию 25)
  • risk_long, risk_short - риск на сделку в %
  • risk_max - максимальный множитель лота, чтобы на очень узком канале позиция не становилась слишком большой
  • level_offset_long, level_offset_short - сдвиг уровней входа на фиксированную величину в цене
Moving Average Crossover, Price vs MA, MACD Trend

Отдельная страница стратегии →

Три классические трендовые стратегии на скользящих средних. Все действия - рыночным ордером по сигналу на графике. Противоположный сигнал закрывает позицию (без переворота), новая позиция открывается на следующем сигнале.

⚠️ Как и любые трендовые стратегии на MA, теряют на боковике из-за частых ложных пересечений.

Параметры

Moving Average Crossover

  • fast_ma_type, fast_ma_source, fast_ma_len - быстрая MA (по умолчанию EMA, close, 9)
  • slow_ma_type, slow_ma_source, slow_ma_len - медленная MA (по умолчанию EMA, close, 21)

Price vs MA

  • ma_type, ma_source, ma_len - MA (по умолчанию SMA, close, 200)
  • use_cross_entry - входить только в момент пересечения (по умолчанию). Если выключено - вход на любой свече, когда цена выше MA (long) или ниже (short)

MACD Trend

  • ma_source, fast_len, slow_len, signal_len - источник цены и длины EMA для MACD (по умолчанию close, 12, 26, 9)
  • use_trend_filter - long только в восходящем тренде, short только в нисходящем. Работает вместе с включенным блоком трендового фильтра filter (см. «Трендовый фильтр»)

Общие для всех трех

  • count_max - максимальное количество входов в позицию, включая первый (по умолчанию 1 - без доборов). Добор делается по повторному сигналу в ту же сторону (в Price vs MA - только при выключенном use_cross_entry)
  • entry_gap - минимальный шаг добора: следующий вход только если цена ниже цены предыдущего входа * entry_gap (для long, для short - зеркально). Например 0.98 - не ближе 2%. 0 - без ограничения
DoubleDragon (на стадии экспериментов)

Отдельная страница стратегии →

Это всё та же стратегия ZigZag. Но работаем немного иначе. Всё отличие в том, как смотрим бэктест по графику отношения двух монет XXXUSDT/xxxusdt.

стратегия DoubleDragon

Там где на синтетическом графике в тестере стратегий открывается Long позиция, на реальном рынке открывается Long по XXXUSDT и Short по xxxusdt.
Там где открывается Short позиция, на реальном рынке открывается Short по XXXUSDT и Long по xxxusdt.

Параметры

Для стратегии запускаются два бота - по одному на каждую монету пары. Уровни строятся по синтетическому графику отношения цен и считаются по настройкам первого бота.

  • index - какая это монета в паре: 1 - числитель (XXXUSDT), 2 - знаменатель (xxxusdt)
  • strategy - по каким уровням торговать синтетический график: zigzag (по умолчанию) или donchian
  • zigzag - блок настроек ZigZag: length, detection, detection_source (как в Strategy Trend Zig Zag)
  • donchian - блок настроек канала Дончиана: channel_len, use_tp, tp, detection_source (как в Donchian Channel)
  • reverse - обратный режим: направления сделок меняются местами
Бэктест
Протестировать во встроенном бэктестере

Скрипт (PineScript) для тестирования стратегии на исторических данных в тестере стратегий TradingView:

Но на вход в тестере стратегий выбираем синтетический график вместо одной торговой пары.
Синтетический график отношения BYBIT:XXXUSDT.P/BYBIT:xxxusdt.P (где XXX - любая криптовалюта с ценой больше чем xxx)

Ввод пары

Результат тестера стратегий за 2025 год BYBIT:ETHUSDT.P/BYBIT:APTUSDT.P на таймфрейме 1д:

Бэктест


Контртрендовые стратегии:

Возврат к среднему | MRS strategy (Envelope, ShiftMA, MultiMA, Colorbox)

Отдельная страница стратегии →

MRS - Mean Reversion Strategy. Это контртрендовая стратегия, которая работает на основе предположения, что цена будет возвращаться к своему среднему значению после отклонения от него. Открывающий ордер выставляется на отступ от средней цены. Закрывающий ордер ставится по средней цене без отступа. При резком отклонении цены открывается позиция и закрывается при возврате цены к среднему значению.

Сделки по стратегии генерируются в моменты когда цена отходит от средней на определенный процент. ⚠️ Но если цена продолжит двигаться в том же направлении без отката, то позиция будет убыточной. Цена падает - стратегия покупает (Идет против тренда). Цена растет - продает (Тоже против тренда). Но закрытие в любом случае рано или поздно произойдет по средней цене.

Как правило по этой стратегии удержание позиции не долгое. И на спокойном рынке долго можно сидеть без позиции.

Рабочий тип ордера: Лимитный. Выставляется заранее и перемещается по мере изменения средней цены.

стратегия MRS

В самом простом исполнении на графике есть три линии МА (скользящие средние).
● Базовая MA цвета Фуксия показывает цену закрывающего лимитного ордера. Без смещения
● Лонг MA Зелёная - цена открывающего LONG позицию лимитного BUY ордера. Это базовая МА просто смещенная на % вниз.
● Шорт MA Красная - цена открывающего SHORT позицию лимитного SELL ордера. Это базовая МА просто смещенная на % вверх.

Алгоритм работы: Если вкл лонг и шорт, то выставляется 2 ордера. Если вкл только лонг или шорт, то 1 ордер. В ожидании позиции ордера перемещаются по своим линиям каждую новую свечу. Когда цена достигает цены нашего открывающего ордера - открывается позиция и выставляется закрывающий ордер по базовой МА. Закрывающий ордер также перемещается по своей МА до тех пор пока не будет исполнен. После цикл повторяется.

Настройка линий MA (открывающие и закрывающие ордера)

Открывающих линий может быть несколько для каждой стороны (ma_long, ma_short) - так получается сетка ордеров с докупками (MultiMA). Закрывающая линия одна для каждой стороны (ma_close_long, ma_close_short) - позиция закрывается целиком одним ордером.

  • id - порядковый номер линии, без повторов
  • type - тип скользящей средней SMA, EMA, GMA, HARMONIC, TEMA, DEMA, ZLEMA, WMA, VWMA, RMA, EHMA, THMA, HMA, DMA, ATR, H, L
  • source - источник цены open, high, low, close, hl2, hlc3, ohlc4, hlcc4, oc2
  • len - длина MA
  • multiplier - смещение. 1 это нет смещения, 0.99 это -1%, 1.01 это +1%
  • lot_x - множитель лота: размер ордера = базовый лот * lot_x. Для закрывающего ордера не используется
  • order_type - limit или market. Рыночный ордер отправляется, когда цена дошла до линии
  • post_only - лимитный ордер только как мейкер
  • hidden - скрытый лимитный ордер (только BitMEX)

Настройка лота. В базовых настройках установите balance_percentage = 100 и risk = 1. Тогда lot_x = 1 - ордер на 100% баланса, 0.5 - на 50%, 1.5 - на 150%.

Параметры стратегии
  • entry_on_close - для рыночных открывающих ордеров: проверять условие входа по цене закрытия последней свечи, а не по текущей цене
  • trade_offset - для рыночных открывающих ордеров: брать значение MA на N свечей назад
  • reverse_mode - для рыночных открывающих ордеров: входить не когда цена пересекла линию, а когда цена находится над линией (для покупки) или под ней (для продажи), не дальше 1% от нее
  • recalculate - пересчитывать размер ордеров при каждом обновлении, даже если позиция уже открыта
  • close_on_signal - начиная со второй свечи после входа, закрыть позицию рыночным ордером, как только цена коснулась закрывающей линии
  • close_on_wrong_side - если цена ушла дальше закрывающей линии больше чем на 0.5%, а лимитный ордер не исполнился - закрыть позицию рыночным ордером
  • emergency_stop - аварийная остановка: если открывающая линия оказалась по другую сторону от закрывающей (линии пересеклись), бот снимает все ордера и закрывает позицию
  • notification_trade_report - отчет в Telegram по каждой закрытой сделке: средняя цена входа, цена выхода и результат в %
  • position_priority - приоритет позиции для ограничителя позиций (см. ниже)
Ограничитель позиций

Ограничитель задается для API ключа параметром "open_positions_limiter": 64 в файле ключа в папке settings_account. По умолчанию 0 - выключен. В ограничителе участвуют только боты MRS, у которых position_priority не равен 0.

  • position_priority от 1 до 5. 5 - наименьший приоритет, такая позиция закроется первой
  • Если открытых позиций столько, сколько задано в ограничителе, на парах без позиции снимаются открывающие ордера - новые позиции не открываются
  • Если позиций открылось больше лимита (например одновременно), лишние закрываются: сначала с приоритетом 5, потом 4, 3, 2, 1. При равном приоритете - случайная
  • Позиции с приоритетом 0 не учитываются и не закрываются ограничителем

В интерфейсе работа ограничителя отображается так: [100 | (4/64)] - 100 ботов на этом API, открыто 4 позиции, лимит 64.

Тот же параметр open_positions_limiter ограничивает и стратегии HiDeep, RedFlag, SmartProfit и ShadowOverlap: когда открытых позиций по ним столько, сколько задано в лимите, боты без позиции не открывают новые сделки. Приоритеты для них не используются.

ColorBox - закрытие по N-ой свече

Закрывающая опция, которая превращает MRS в ColorBox: позиция закрывается по закрытию N-ой свечи после входа. Можно добавить условие на цвет свечи, например закрывать после 2-й зеленой свечи. Настраивается отдельно для long и short. Подробно - в разделе «Закрытие позиции и общие опции».

Бэктест
Протестировать во встроенном бэктестере

Скрипт (PineScript) для тестирования стратегии на исторических данных в тестере стратегий TradingView. Стратегия популярная и вы можете найти множество вариаций с разными названиями.

Рекомендации: (не строгие и их можно нарушать в исследовательских целях)
● Лимитный ордер ограничивает емкость стратегии. На низколиквидных инструментах результат в тестере будет завышен.
● На споте тестируйте только long. Одновременно long и short - для опытных пользователей.
● На фьючерсах у контртрендовой стратегии есть риск ликвидации.
● Типичный таймфрейм - 1ч. Пары альткоин/биткоин или альткоин/альткоин.

MRS2, MRS2 FAST

Отдельная страница стратегии →

Вариант MRS с отдельными закрывающими линиями для long и short и набором фильтров, которые снимают ордера в опасные моменты. Одна открывающая линия на сторону, без докупок.

Рабочий тип ордера: Лимитный. Открывающий и закрывающий ордера двигаются по своим линиям.

По умолчанию бот не торгует, если открывающая линия оказалась по другую сторону от закрывающей (например линия покупки выше линии закрытия long) - сделка в таком случае заведомо убыточна.

Параметры
  • ma_long, ma_short, ma_close_long, ma_close_short - открывающие и закрывающие линии. Настраиваются так же, как линии в MRS
  • use_settings_from_open_long, use_settings_from_open_short - строить закрывающую линию по типу, источнику и длине открывающей MA (смещение берется из закрывающей линии)
  • distance_filter - минимальное расстояние в % между открывающей и закрывающей линией (по умолчанию 0.3). Если ближе - ордера снимаются (слишком маленькая потенциальная прибыль)
  • filter_pump_1 - фильтр после пампа. Когда цена (source) пересекает закрывающую линию снизу вверх, запоминается уровень этой линии offset свечей назад. Пока линия покупки выше этого уровня - бот не покупает
  • filter_pump_2 - фильтр резкого роста. Если за последние count свечей максимум больше минимума в value раз и максимум был позже минимума - торговля приостанавливается
  • filter_close_position - при срабатывании фильтра не только снять ордера, но и закрыть открытую позицию
  • unconditional_placement - выставлять ордера всегда, без проверки взаимного положения линий
  • allow_close_by_market_order - если вся свеча прошла выше закрывающей линии, а лимитный ордер не исполнился - закрыть позицию рыночным ордером
  • only_profit - не переносить закрывающий ордер ниже цены входа (для long) - закрытие только в прибыль
  • replace_open_order - при открытой позиции размер открывающего ордера уменьшается на размер позиции
  • cancel_if_half_filled - если открывающий ордер исполнился частично и оставшаяся часть меньше удвоенной позиции, он снимается

MRS2 FAST (mrs2fast) - та же логика и те же настройки (блок mrs2), но за один проход бот выполняет сразу все нужные действия с ордерами (обновить закрывающий, переставить открывающий и т.д.), а не одно действие за проход. Ордера быстрее успевают за линиями MA - полезно на младших таймфреймах и при большом количестве ботов.

MRS3

Отдельная страница стратегии →

Объединение MRS и MRS2: несколько открывающих линий на каждую сторону (сетка ордеров с докупками, как MultiMA в MRS) и набор защит из MRS2.

Рабочий тип ордера: Лимитный. Каждый открывающий ордер двигается по своей линии, закрывающий - по закрывающей линии.

Параметры
  • ma_long, ma_short - списки открывающих линий. Настраиваются так же, как в MRS (id, type, source, len, multiplier, lot_x, order_type, post_only, hidden)
  • ma_close_long, ma_close_short - одна закрывающая линия на сторону
  • distance_filter, filter_close_position, unconditional_placement, allow_close_by_market_order, only_profit - как в MRS2
  • replace_open_order - при открытой позиции позиция распределяется по уровням сетки от ближнего к цене: исполненные уровни не перевыставляются, частично исполненный получает остаток, нетронутые - полный лот
  • use_id_tracking - отслеживать ордера сетки по ID (не больше одного запроса к бирже за проход). Полезно при ограничениях биржи на частоту запросов
  • notification - отчет в Telegram по каждой закрытой сделке: цена входа, цена выхода и результат в %
HD, HiDeep

Отдельная страница стратегии →

Данная стратегия появилась после долгих размышлений по улучшению стратегии возврата к среднему | MRS | Envelope, и эти доработки привели к появлению отдельной стратегии.
Ключевые принципиальные отличия от MRS:
● работа только рыночным ордером. Не известна заранее цена, по которой будет совершена покупка/продажа, и поэтому заранее ничего не получится выставить
● все действия происходят в момент закрытия свечи. Получается очень простая робастная логика стратегии, которая очень хорошо бэктестируется даже в примитивных тестерах стратегий
● не очевидное следствие из пункта выше - значительно лучшая выживаемость стратегии при резких движениях в рамках одной свечи. Так как внутри свечи никаких действий не произойдет, даже если свеча сделает 80% движение цены.
● стратегия использует логику стратегии MRS как одно из условий (фильтр) для срабатывания ордера.
● неограниченное количество докупок.

Это контртрендовая стратегия, которая ищет моменты локальной перепроданности и открывает покупки на откатах вниз с расчетом на последующий отскок.
Она сочетает:
● фильтрацию входов через скользящую среднюю (Как в стратегии выше - Возврат к среднему | MRS)
● анализ отклонения цены от средней
● простую модель перепроданности (похожую на RSI). Цена падает быстрее обычного.
● выход по признаку восстановления цены (зеркально обратные условия как для покупки)

Стратегия пытается поймать ситуацию, когда:
● Цена резко упала
● Движение выглядит «перегруженным» (слишком сильное относительно нормы)
● Есть признаки краткосрочной перепроданности
В такие моменты она предполагает, что рынок временно перегнул вниз и может отскочить.

стратегия HiDeep

Пример вариации стратегии HiDeep на графике выше.
Вход в Long и последующие докупки на свечах которые:
● ниже зеленой триггерной линии MA со смещением вниз
● отмеченных зеленым треугольником ▲
Закрытие позиции при касании High красной MA линии. (действие по закрытию свечи)
Синяя линия - показывает среднюю цену покупки.

⚠️ При затяжном падении без отскока позиция набирается докупками и растет убыток. Ограничивайте количество докупок и размер лота.

Как определяется сигнал (зеленый/красный треугольник)

Сигнал на покупку (зеленый ▲) появляется на свече, которая одновременно:
● красная (закрылась ниже открытия)
● тело свечи опустилось ниже тела предыдущей
● отклонение цены закрытия от SMA больше среднего отклонения за последние свечи (движение «перегружено»)
● быстрый RSI ниже 10 (сильная краткосрочная перепроданность)
Сигнал на продажу (красный ▼) - зеркально: зеленая свеча, тело выше предыдущего, сильное отклонение вверх, быстрый RSI выше 90.

Сигналы считаются по двум независимым наборам настроек, срабатывает любой из них. Дополнительно цена закрытия должна быть ниже линии MA low (для покупки) или выше MA high (для продажи).

Параметры

Линии MA

  • ma_low_*, ma_high_* - тип, длина и источник линий фильтра входа. Можно выбрать ATR вместо MA
  • ma_low_1, ma_high_1 - смещение линий фильтра. 0.995 - на 0.5% ниже, 1.011 - на 1.1% выше
  • ma_high_trigger_*, ma_low_trigger_* - триггерные линии закрытия: long закрывается, когда High свечи выше ma_high_trigger, short - когда Low ниже ma_low_trigger

Сигнал

  • up_1, dn_1, mac_1, sma_1, sma_up_1, sma_dn_1 - первый набор: длина быстрого RSI вверх/вниз, длина SMA для отклонения, длина усреднения отклонения, множители порога
  • up_2 ... sma_dn_2 - второй набор с теми же параметрами

Докупки и закрытие

  • count_max_long, count_max_short - максимальное количество входов в позицию, включая первый (по умолчанию 5)
  • entry_gap - минимальный шаг докупки: следующая покупка только если цена ниже цены предыдущей покупки * entry_gap. Например 0.98 - не ближе 2%. 0 - без ограничения
  • only_profit, min_profit - закрывать по триггерной линии только в прибыли. min_profit - множитель к цене входа, например 1.01 - прибыль не меньше 1%
  • allow_reduce - закрыть позицию по противоположному сигналу (для long - по красному ▼)
  • reduce_ma_1 - закрывать по противоположному сигналу, только если цена за противоположной линией MA
  • allow_reverse - по противоположному сигналу не просто закрыть, а перевернуть позицию

Режимы

  • use_pdd - инвертированный режим: покупка по сигналу перекупленности выше линии MA high, продажа по сигналу перепроданности ниже MA low. Стратегия становится импульсной
  • disable_trade_on_reverse_trend - при включенном трендовом фильтре не открывать сделки на свече, где тренд сменился
  • use_auto_size_hedge, auto_size_hedge_ratio - автоматический размер для хеджа. Размер входа зависит от суммарного размера трендовых позиций других ботов на этом аккаунте: чем больше трендовых short, тем больше покупка HiDeep, и наоборот
  • delay - пауза между проверками в мс (не меньше 3000)

Бот начинает торговать только когда загружено достаточно свечей для расчета индикаторов. С включенным трендовым фильтром нужно не меньше 500 свечей.

Бэктест
Протестировать во встроенном бэктестере

Скрипты (PineScript) для тестирования стратегии на исторических данных в тестере стратегий TradingView. В скрипте hamster-bot-HiDeep три разных варианта стратегии - нужный выбирается пресетом в настройках.

RedFlag

Отдельная страница стратегии →

Простая стратегия покупки на резком падении. Работает только в long.

Бот следит за текущей свечой. Если свеча красная и цена упала на заданный % от цены предыдущей свечи (open, high, low или close на выбор), бот сразу, не дожидаясь закрытия свечи, покупает рыночным ордером. При продолжении падения делает докупки.

Рабочий тип ордера: Рыночный (вход) и Лимитный (тейк-профит).

⚠️ При затяжном падении без отскока докупки увеличивают убыток. Ограничивайте количество входов.

Параметры
  • drop_percent - на сколько % должна упасть цена для входа (по умолчанию 10%)
  • from - от какой цены предыдущей свечи считать падение: open, high, low, close
  • count - максимальное количество входов, включая первый
  • timer - минимальная пауза между входами в минутах. 0 - без паузы
  • each_tp - на каждый вход выставляется свой лимитный тейк-профит на take_profit_long % от цены этого входа. Без этой опции тейк-профит один на всю позицию
SmartProfit

Отдельная страница стратегии →

Стратегия усреднения (DCA) только в long. Бот покупает рыночным ордером, сразу выставляет сетку лимитных ордеров на докупку ниже цены входа и лимитный тейк-профит от средней цены позиции. После закрытия по тейку цикл повторяется.

Входы можно ограничить фильтрами: покупать только когда цена ниже выбранной линии Боллинджера, ниже MA или ниже заданной максимальной цены. Работает и на споте - средняя цена входа считается ботом по исполненным ордерам.

Рабочий тип ордера: Рыночный (первый вход) и Лимитный (докупки и тейк-профит).

⚠️ При затяжном падении ниже всей сетки позиция остается в убытке. Размер сетки и мартингейл подбирайте под депозит.

Параметры
  • take_profit - тейк-профит в % от средней цены позиции (по умолчанию 2)
  • averaging - уровни докупок в % ниже цены первого входа через точку с запятой (по умолчанию 3;6;9)
  • martingale - множитель лота для каждой следующей докупки (по умолчанию 1 - все ордера одного размера)
  • filter_bb - фильтр по полосам Боллинджера: use, len, type, source, std_dev, condition - ниже какой линии должна быть цена: upper, basis или lower
  • filter_ma - фильтр по MA: use, type, len, source, multiplier. Покупка только когда цена ниже MA * multiplier
  • filter_max_price - не покупать выше этой цены. 0 - выключен
  • only_exit - режим выхода: новые циклы не открываются, бот только закрывает текущую позицию
  • trade_on_exit_bar - разрешить новый вход на той же свече, на которой закрылась предыдущая позиция (по умолчанию включено)
ShadowOverlap

Отдельная страница стратегии →

Стратегия отбоя от длинной тени свечи. Если у свечи длинная верхняя тень, на заданной части этой тени строится уровень для short. Когда через несколько дней цена возвращается к этому уровню, бот открывает short в расчете на повторный отбой. Для long - зеркально по нижней тени.

Выход частями: два частичных тейка и финальный тейк, плюс стоп-лосс и перевод стопа в безубыток.

Рабочий тип ордера: Рыночный или Лимитный (вход), Лимитные (тейки) и Стоп (стоп-лосс).

Параметры

Настройки задаются отдельно для блоков short и long:

  • percent_input - минимальная длина тени в % от цены края тела свечи (по умолчанию 5)
  • wick_level_percent - на какой части тени строится уровень входа: 0% - край тела, 100% - конец тени (по умолчанию 90)
  • size_candle - вход, только если между уровнем и текущей ценой больше заданного % (по умолчанию 7)
  • days_to_wait - сколько дней должно пройти после появления уровня, прежде чем по нему можно входить (по умолчанию 1)
  • use_new_filter, wick_level_percent2 - входить только по «свежему» уровню: если цена уже доходила до уровня wick_level_percent2 % тени (по умолчанию 20), уровень считается отработанным
  • tp1_dist, tp1_qty - первый тейк: расстояние в % от цены входа и доля позиции в % (по умолчанию 4% и 70%)
  • tp2_dist, tp2_qty - второй тейк (по умолчанию 6% и 15%)
  • tp3_dist - финальный тейк на остаток позиции (по умолчанию 9%)
  • sl_dist - стоп-лосс в % от цены входа (по умолчанию 18)
  • no_loss_trigger, no_loss_value - безубыток: когда прибыль достигла no_loss_trigger %, стоп переносится в прибыль на (no_loss_trigger - no_loss_value) %. 0 - выключено

Общие настройки:

  • use_market - входить рыночным ордером, когда цена дошла до уровня (по умолчанию). Если выключено - лимитный ордер на уровне выставляется заранее, когда цена подошла к нему ближе чем на size_candle %
  • notify_only - режим сигналов: бот не торгует, а только отправляет уведомления о входах и выходах в Telegram
TV MAPM

Отдельная страница стратегии →

Стратегия на пересечении двух сигнальных линий MACD с докупками и тейк-профитом. MACD считается как разница EMA 8 и EMA 49, по нему строятся быстрая и медленная сигнальные линии. Быстрая пересекла медленную снизу вверх - покупка, сверху вниз - продажа.

После входа выставляется лимитный тейк-профит от средней цены позиции и лимитный ордер на докупку с шагом от цены первого входа. Каждая следующая докупка больше предыдущей в lot_x раз.

Рабочий тип ордера: Рыночный (вход) и Лимитный (докупки и тейк-профит).

Параметры
  • fast_len, slow_len - длины быстрой и медленной сигнальных линий (по умолчанию 300 и 600)
  • averaging_step - шаг докупок в % от цены первого входа (по умолчанию 2.5)
  • max_entry_count - максимальное количество входов, включая первый (по умолчанию 3)
  • lot_x - множитель лота для каждой следующей докупки (по умолчанию 1)
  • tp_long, tp_short - тейк-профит в % от средней цены позиции (по умолчанию 10)
MZ

Отдельная страница стратегии →

Стратегия входа на откате после импульса. Бот запоминает локальный минимум (для long) и строит от него уровни на заданной доле размера канала channel_size. Когда свеча закрылась выше уровня-триггера (импульс подтвержден), выставляется лимитный ордер на покупку на откате, тейк-профит выше и стоп-лосс чуть выше локального минимума. Для short - зеркально от локального максимума.

Торгует в одну сторону: если в базовых настройках включен long - только long, иначе только short. После убыточной сделки лот следующей может быть увеличен (мартингейл).

⚠️ Мартингейл быстро увеличивает риск при серии убытков.

Параметры
  • channel_size - размер канала в единицах цены (по умолчанию 10000 - подбирается под цену монеты)
  • mul_trigger - уровень-триггер: доля канала от локального минимума (по умолчанию 0.1)
  • mul_limit_1 - уровень лимитного ордера на вход (по умолчанию 0.05)
  • mul_tp_1 - уровень тейк-профита (по умолчанию 0.5)
  • mul_control - контрольный уровень: если цена дошла до него и вернулась к уровню входа, позиция закрывается (по умолчанию 0.25)
  • mul_sl - стоп-лосс: отступ от локального минимума в долях цены (по умолчанию 0.001 = 0.1%)
  • martingale - множитель лота после убыточной сделки (по умолчанию 1 - выключен)

Торговля по сигналам TradingView:

TradingView | Alerts | Webhook

Отдельная страница стратегии →

Если вашей стратегии нет в списке, но она есть в TradingView - бот может торговать по ее алертам. Бот получает сигнал по webhook и открывает или закрывает позицию на бирже.

Отличие от стратегий выше: бот не рассчитывает сигналы сам, а исполняет то, что прислал TradingView. Скорость реакции зависит от доставки алерта.

Подробная инструкция по настройке алертов: Алерты TradingView

Webhook (сигналы по многим монетам)

Режим для внешнего скринера или своего сервиса сигналов: один бот торгует сразу по всем монетам к USDT на аккаунте. Сигнал приходит POST-запросом на адрес бота /w в виде JSON с полями secret (секретная ссылка бота), symbol (монета, например BTC) и side (buy или sell). Бот открывает позицию рыночным ордером.


Прочие режимы:

Volume Market (набор торгового объема)

Отдельная страница стратегии →

Режим для набора торгового объема (например для VIP-уровня биржи или условий акции). Бот поочередно открывает long и short рыночным ордером и закрывает позицию на следующей свече. В статусе бота показывается набранный объем за день, месяц и всего.

⚠️ Каждая сделка оплачивается комиссией биржи и спредом. Используйте на ликвидных парах и с учетом комиссий.

Параметры
  • delay_bars - пауза в свечах между закрытием позиции и следующим входом (по умолчанию 0)
  • use_smart_close - умное закрытие: включает параметры ниже
  • tp_pct, sl_pct - закрыть раньше при прибыли или убытке в % от цены входа. 0 - выключено
  • max_daily_loss_pct - остановить торговлю до конца дня (UTC), если баланс упал больше чем на заданный % от баланса на начало дня. 0 - выключено
  • threshold_profit - порог прибыли. 1 - выключен. Больше 1 (например 1.01) - закрывать только при прибыли не меньше 1%. Меньше 1 (например 0.98) - не закрывать, если убыток больше 2%
Long/Short-bot (на стадии экспериментов)

Отдельная страница стратегии →

Вход лимитным ордером от середины канала цены закрытия за n свечей со смещением на m стандартных отклонений, тейк-профит дальше еще на K стандартных отклонений. Если ордер на вход не исполнился за auto_cancel свечей, уровни пересчитываются.

Close Position Delete Orders

Отдельная страница стратегии →

Служебный режим: бот закрывает открытую позицию по паре рыночным ордером и снимает все ордера. Удобно, чтобы быстро выйти из пары, не удаляя бота. Режим Off - бот ничего не делает с позицией и ордерами.


Закрытие позиции и общие опции:

Эти опции включаются в блоке options настроек бота и работают вместе с любой стратегией. Можно включать несколько сразу - сработает то условие, которое наступит первым.

Тейк-профит и стоп-лосс
Стоп с триггером (безубыток)

Когда прибыль достигла stop_trigger_trigger_long %, включается стоп. Если после этого цена откатилась на stop_trigger_value_long % от точки срабатывания - позиция закрывается.

Например: триггер 3%, стоп 2%. Цена выросла на 3% от входа - стоп включен. Если цена откатится на 2% от этой точки - позиция закроется примерно с +1%. Если значения равны - получается перевод в безубыток. Для short - параметры stop_trigger_*_short.

Трейлинг-стоп по MA

Позиция закрывается, когда цена касается скользящей средней. Для long линия обычно ниже цены, для short - выше.

Тейк-профит по MA

Противоположность трейлинг-стопу: long закрывается, когда цена поднялась до линии MA, short - когда опустилась до нее. Можно выбрать ATR вместо MA.

Закрытие по пересечению MA

Позиция закрывается при пересечении быстрой и медленной MA, если к этому моменту есть нужная прибыль или убыток достиг стопа.

Закрытие по N-ой свече (ColorBox)

Позиция закрывается по закрытию N-ой свечи после входа. Можно добавить условие на цвет: например закрывать long после 2-й зеленой свечи.

Закрытие по сигналу HiDeep

Сигналы HiDeep можно использовать как выход в любой стратегии. Long закрывается по сигналу перекупленности (красный ▼), short - по сигналу перепроданности (зеленый ▲), если прибыль не меньше hd_close_min_profit %.

Трендовый фильтр

Фильтр на основе ATR (похож на индикатор SuperTrend). Определяет текущий тренд и разрешает сделки только по нему: в восходящем тренде только long, в нисходящем только short. Используется в стратегиях ZZ, HiDeep и MACD Trend (при use_trend_filter).

Закрытие по времени

Блок time_close: позиция закрывается рыночным ордером через заданное количество свечей после входа или в заданный день.

Пауза после убытка или прибыли

Бот останавливается после закрытия сделки с убытком или прибылью: снимает ордера и больше не торгует, пока его не запустят снова. В Telegram приходит уведомление.

Закрытие по марже аккаунта

Настройка API ключа (блок close_by_margin), а не отдельного бота. Когда общий баланс аккаунта с учетом нереализованной прибыли вырос относительно баланса кошелька до заданного уровня, все боты этого ключа сокращают свои позиции. Так можно фиксировать общую прибыль по всем парам сразу.

Режим «как в TradingView»

like_tv - условия закрытия проверяются по High/Low закрытой свечи, как это делает тестер стратегий TradingView, а не по текущей цене. Помогает получить на реальном рынке результат, близкий к бэктесту в TradingView.