
Обратная торговая стратегия под давлением на канале Тан-Шо является количественной торговой стратегией, основанной на индикаторе каналов Тан-Шо. Эта стратегия сочетает в себе остановку убытков и отслеживание убытков для управления риском.
Когда цена касается верхней и нижней границы каналов Тан-Шо, открывается дополнительная позиция, в то же время устанавливается стоп-лосс и стоп-стоп. Если произойдет стоп-лосс, то открытие новой позиции может быть приостановлено только через определенное время. Во время хранения позиции, чтобы заблокировать прибыль путем отслеживания стопа.
Стратегия использует 20-дневный индикатор коридора Тан-Шо, который включает в себя верхнюю, нижнюю и среднюю линии.
Открытие позиции при соприкосновении цены с нижней полосой; открытие позиции при соприкосновении цены с верхней полосой.
Если ранее произошла стоп-убыток, следует приостановить определенный цикл (например, 3 K-линии), чтобы избежать погони за драконом.
При каждом открытии позиции устанавливается фиксированный процент стоп-лосса и динамически корректируемая таке-прибыль.
take profit рассчитывается исходя из рисково-прибыльного соотношения (например, 2) и стоп-лосс процента (например, 22%).
Включить слежение за убытками на этапе хранения:
При множественном позиционировании, если цена пересекает среднюю линию, то стоп-лост корректируется до средней точки между ценой входа и ценой средней линии.
При переходе через середину линии с пустой головой и поддержанием позиции, товарищ корректирует.
Используя индикатор прохода Тан-Шоу, мы сможем зафиксировать прорывные события.
Позиции, открытые под давлением, соответствуют принципу обратной торговли.
Остановить убытки, избежать погони за драконом, отслеживать убытки, блокировать прибыль, хорошо управлять рисками.
Правила стратегии ясны, понятны и просты в применении.
В качестве трендового индикатора, канал Тунь-Шо подвержен ложным прорывам, которые могут привести к убыткам.
Фиксированный стоп легко поддается нажатию, следует соответствующим образом скорректировать диапазон стоп.
Следующая стоп-коррекция может быть легко ударена, и частота коррекции должна быть сбалансирована.
Неправильная настройка параметров также может повлиять на эффективность стратегии.
Протяженность туннеля Тунь-Шо может быть оптимизирована для поиска оптимального сочетания параметров.
Добавление модулей управления позицией, таких как регулярная перестановка периода приостановки.
В сочетании с другими показателями оценивайте тенденции, чтобы избежать ложных прорывов в тренде.
Включает динамическую остановку, изменяет положение остановки в реальном времени.
Стратегия по борьбе с давлением в обратном канале тан-шау включает в себя множество функций, таких как определение тенденций, управление рисками и т. Д. Основные элементы являются полными. С помощью постоянной оптимизации параметров и их комбинации с другими показателями или моделями можно дополнительно повысить устойчивость стратегии и повысить доходность.
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Contrarian Donchian Channel Strategy - Touch Entry with Post-SL Pause and Trailing Stop", overlay=true, default_qty_value=0.01, default_qty_type=strategy.percent_of_equity)
// Inputs
length = input(20, minval=1, title="Donchian Channel Length")
riskRewardRatio = input(2, title="Risk/Reward Ratio")
stopLossPercent = input(0.22, title="Stop Loss (%)") / 100
pauseCandles = input(3, minval=1, title="Pause After SL (Candles)")
// Donchian Channel Calculation
upper = highest(high, length)
lower = lowest(low, length)
centerline = (upper + lower) / 2 // Calculating the Centerline
// Plotting Donchian Channel and Centerline
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")
plot(centerline, color=color.blue, title="Centerline")
// Tracking Stop Loss Hits and Pause
var longSLHitBar = 0
var shortSLHitBar = 0
var int lastTradeDirection = 0 // 1 for long, -1 for short, 0 for none
// Update SL Hit Bars
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
if (close[1] < strategy.position_avg_price[1])
longSLHitBar := bar_index
lastTradeDirection := 1
if (strategy.position_size[1] < 0 and strategy.position_size == 0)
if (close[1] > strategy.position_avg_price[1])
shortSLHitBar := bar_index
lastTradeDirection := -1
// Entry Conditions - Trigger on touch
longCondition = (low <= lower) and (bar_index - longSLHitBar > pauseCandles or lastTradeDirection != 1)
shortCondition = (high >= upper) and (bar_index - shortSLHitBar > pauseCandles or lastTradeDirection != -1)
// Trade Execution
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Initial Stop Loss and Take Profit Calculation
stopLoss = strategy.position_avg_price * (1 - stopLossPercent)
takeProfit = strategy.position_avg_price * (1 + stopLossPercent * riskRewardRatio)
// Trailing Stop Loss Logic
var float trailingStopLong = na
var float trailingStopShort = na
// Update Trailing Stop for Long Position
if (strategy.position_size > 0)
if (close > centerline)
trailingStopLong := (strategy.position_avg_price + centerline) / 2
stopLoss := na(trailingStopLong) ? stopLoss : max(trailingStopLong, stopLoss)
// Update Trailing Stop for Short Position
if (strategy.position_size < 0)
if (close < centerline)
trailingStopShort := (strategy.position_avg_price + centerline) / 2
stopLoss := na(trailingStopShort) ? stopLoss : min(trailingStopShort, stopLoss)
// Setting Stop Loss and Take Profit for each trade
strategy.exit("SL_TP_Long", "Long", stop=stopLoss, limit=takeProfit)
strategy.exit("SL_TP_Short", "Short", stop=stopLoss, limit=takeProfit)