
Стратегия представляет собой систему для отслеживания трендов, которая сочетает в себе Дончианский канал и 200-циклическую простую подвижную среднюю (SMA). Стратегия определяет потенциальные возможности для покупки и продажи, наблюдая за тем, как цены прорываются через Дончианский канал, а также сочетает движение SMA. В то же время, для управления рисками разработана динамическая стоп-модель, основанная на средней линии канала.
Основная логика стратегии основана на следующих ключевых элементах:
Предложения по контролю рисков:
Оптимизация сигнала:
Оптимизация убытков:
Оптимизация управления позициями:
Оптимизация времени:
Эта стратегия, объединив классический канал Доньчжана и индикатор движущихся средних, создает четкую логику, управляемую риском систему отслеживания тенденций. Основные преимущества стратегии заключаются в четкости сигнала, разумном управлении риском, но она может плохо работать на волатильных рынках.
/*backtest
start: 2024-02-21 00:00:00
end: 2024-03-18 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ardhankurniawan
//@version=5
strategy("Donchian Channel Strategy with SMA 200 and Custom SL", overlay=true)
// Parameters
length = 20
smaLength = 200 // Changed SMA to 200
// Calculate Donchian Channel
upper = ta.highest(high, length)
lower = ta.lowest(low, length)
mid = (upper + lower) / 2 // Mid Line
// Calculate SMA 200
sma200 = ta.sma(close, smaLength)
// Plot Donchian Channel, SMA 200, and Mid Line
plot(upper, color=color.green, linewidth=2, title="Upper Line")
plot(lower, color=color.red, linewidth=2, title="Lower Line")
plot(mid, color=color.orange, linewidth=1, title="Mid Line")
plot(sma200, color=color.blue, linewidth=2, title="SMA 200")
// Long and Short logic based on SMA 200
longCondition = upper > ta.highest(upper[1], length) and close > sma200
shortCondition = lower < ta.lowest(lower[1], length) and close < sma200
// Calculate Stop Loss for Long and Short based on new conditions
longSL = mid - 0.45 * (mid - lower) // SL for Long when price crosses down mid line
shortSL = mid + 0.45 * (upper - mid) // SL for Short when price crosses up mid line
// Enter Long or Short position
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Place Stop Loss
strategy.exit("Exit Long", from_entry="Long", stop=longSL)
strategy.exit("Exit Short", from_entry="Short", stop=shortSL)