
Стратегия по преодолению обратного тренда является количественной торговой системой, основанной на исторических высоких и низких уровнях, в то же время используя обратный тренд в качестве механизма выхода. Эта стратегия используется для мониторинга высоких и низких цен за последние три торговых дня, чтобы совершать входные операции, когда цены преодолевают эти ключевые уровни, а при появлении обратного сигнала выйти из позиции.
Основные принципы стратегии основаны на двух ключевых концепциях: ценовых прорывах и обратных тенденциях:
high3 = ta.highest(high[1], 3)
low3 = ta.lowest(low[1], 3)
longEntry = close > high3
shortEntry = close < low3
isLong = strategy.position_size > 0
isShort = strategy.position_size < 0
wasLong = nz(strategy.position_size[1] > 0)
wasShort = nz(strategy.position_size[1] < 0)
longExit = shortEntry
shortExit = longEntry
Простые и эффективныеЭта стратегия основана на простых принципах поведения цен, которые легко понять и реализовать без сложных технических показателей, что снижает риск перенастройки.
Умение адаптироватьсяПри использовании относительно недавних трехдневных максимумов и минимумов в качестве отсчета, стратегия может адаптироваться к различным рыночным условиям и волатильности, не будучи ни слишком чувствительной, ни слишком вялой.
Ясные правила входа и выходаСтратегия предоставляет четкие сигналы входа и выхода, исключает субъективные суждения в процессе торговли и помогает сохранить торговую дисциплину.
Защита от обратного трендаПрименение обратного тренда в качестве сигнала выхода позволяет быстро ликвидировать позиции при изменении направления рынка, эффективно контролировать отступления и защищать полученную прибыль.
Полное управление деньгамиСтратегия управления позициями на основе процентов от чистой стоимости, которая является более гибкой по сравнению с фиксированными ставками и позволяет автоматически корректировать размер сделки с учетом размера счета.
Визуальная обратная связь четкаяС помощью знаков покупки, продажи и выхода на графике стратегии трейдер может визуально понять выполнение стратегии, что облегчает анализ обратной связи и оптимизацию стратегии.
Риск поддельного прорыва: рынок может иметь кратковременные ложные прорывы, в результате чего стратегия может быстро перемещаться в обратном направлении после входа, что приводит к ненужным торговым затратам и убыткам. . Решение: можно добавить подтверждающие фильтры, такие как подтверждение загрузки или ожидание, что цена останется на месте прорыва в течение определенного времени.
Риски частых сделокВ условиях высокой волатильности рынка, цены могут часто пробиваться через трехдневные максимумы и минимумы, что приводит к чрезмерной торговле и эрозии комиссий. Решение: можно продлить референсный цикл или добавить период охлаждения, чтобы уменьшить частоту торгов.
Отсутствие механизмов сдерживанияРешение: добавление фиксированного стоп-лосса или скорректированного стоп-лосса в качестве дополнительной защиты.
Риск рыночных пробелов: После ночного скачка или крупного новостного события цена может сильно подскочить, в результате чего фактическая цена входа или выхода будет намного ниже ожидаемой. . Решение: установка максимально допустимой скольжения или использование стоп-лосс ордера.
Тенденция к отсутствию средыВ условиях бурного рынка, трехмесячная стратегия прорыва может плохо работать, вызывая многочисленные ошибочные сигналы. Решение: добавление фильтра состояния рынка, используйте стратегию только в условиях рынка, в которых есть четкая тенденция.
Оптимизация цикла: Текущий фиксированный трехдневный референсный цикл может не подходить для всех рыночных условий. Рекомендуется осуществить динамическую корректировку референсного цикла, автоматически корректируя длину прорывного цикла в зависимости от рыночных колебаний, используя более длинный цикл в высоко-волатильных рынках и более короткий цикл в низко-волатильных рынках.
Добавить условия фильтрацииДля улучшения качества сигнала могут быть введены дополнительные условия фильтрации, например:
Совершенствование механизма выходаПомимо перемены тенденции, можно добавить несколько механизмов выхода:
Введение частичного управления позициямиВ настоящее время используется 100%-ная себестоимость, и можно рассматривать возможность изменения размеров позиций в зависимости от силы сигнала или динамики рынка, увеличивая позиции при более определенном сигнале и уменьшая позиции при более слабом сигнале.
Добавить фильтр временных рамок: подтверждение направления тенденции на более длительных временных периодах, торговля только в направлении, соответствующем долгосрочным тенденциям, чтобы уменьшить риск обратной торговли. Такой многократный анализ временных рамок может значительно повысить уровень успеха стратегии.
Трехдневная стратегия выхода из обратного тренда - это торговая система, которая сочетает в себе принципы ценового прорыва и отслеживания тенденций, чтобы создать входный сигнал, отслеживая высокие и низкие цены в краткосрочной перспективе, а также использовать обратный прорыв в качестве механизма выхода. Преимущества этой стратегии заключаются в простоте концепции, четкости правил и адаптивности, подходящей для использования новичками и опытными трейдерами. Однако, в стратегии также присутствуют такие проблемы, как риск ложного прорыва, риск чрезмерной торговли и отсутствие совершенных механизмов по устранению убытков.
/*backtest
start: 2025-03-30 00:00:00
end: 2025-04-29 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("3-Day Breakout Strategy with Trend Change Exit", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === Calculate 3-day high/low (excluding current bar) ===
high3 = ta.highest(high[1], 3)
low3 = ta.lowest(low[1], 3)
// === Entry conditions ===
longEntry = close > high3
shortEntry = close < low3
// === Track position state ===
isLong = strategy.position_size > 0
isShort = strategy.position_size < 0
wasLong = nz(strategy.position_size[1] > 0)
wasShort = nz(strategy.position_size[1] < 0)
// === Exit conditions ===
// Exit on trend reversal (new signal)
longExit = shortEntry // Exit long position when a short signal occurs
shortExit = longEntry // Exit short position when a long signal occurs
// === Execute entries ===
buySignal = longEntry and not isLong and not isShort
sellSignal = shortEntry and not isLong and not isShort
if (buySignal)
strategy.entry("Long", strategy.long)
if (sellSignal)
strategy.entry("Short", strategy.short)
// === Execute exits on opposite signal (trend change) ===
if (isLong and longExit)
strategy.close("Long")
if (isShort and shortExit)
strategy.close("Short")
// === Exit markers (on actual exit bar only) ===
exitLongSignal = wasLong and not isLong
exitShortSignal = wasShort and not isShort
// === Plot entry signals only on the entry bar ===
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// === Plot exit signals only on the exit bar ===
plotshape(exitLongSignal, title="Exit Long", location=location.abovebar, color=color.orange, style=shape.labeldown, text="EXIT")
plotshape(exitShortSignal, title="Exit Short", location=location.belowbar, color=color.orange, style=shape.labelup, text="EXIT")