
Strategi ini adalah sistem perdagangan trend-tracking yang menggabungkan Saluran Donchian dan purata bergerak sederhana 200 kitaran (SMA). Strategi ini mengenal pasti peluang potensi untuk melakukan over dan under dengan melihat harga menembusi Saluran Donchian dan menggabungkan pergerakan SMA. Di samping itu, strategi ini juga merancang mekanisme stop loss dinamik berdasarkan saluran tengah untuk mengawal risiko.
Logik teras strategi adalah berdasarkan elemen utama berikut:
Cadangan kawalan risiko:
Pengoptimuman Isyarat:
Pengoptimuman Stop Loss:
Pengurusan Posisi Optimum:
Pengoptimuman masa:
Strategi ini dengan menggabungkan saluran klasik dan penunjuk rata-rata bergerak, membina sistem pemantauan trend yang jelas logik, dan risiko yang boleh dikawal. Kelebihan utama strategi ini adalah kepastian isyarat, kawalan risiko yang munasabah, tetapi ia mungkin kurang baik dalam pasaran yang bergolak.
/*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)