
Strategi ini menghasilkan sinyal beli dengan menghitung moving average dari dua parameter yang berbeda ketika garis cepat melintasi garis lambat. Strategi ini juga menghasilkan sinyal jual ketika harga turun di bawah harga stop loss. Strategi ini dapat secara efektif melacak tren pasar dan menghentikan stop loss tepat waktu setelah keuntungan.
Keuntungan dari strategi ini adalah menggabungkan pelacakan tren dan manajemen stop loss, baik untuk melacak arah garis tengah panjang maupun untuk mengendalikan kerugian tunggal melalui stop loss.
Parameter moving average dapat dioptimalkan dengan tepat, atau ATR dapat disesuaikan untuk menyeimbangkan stop loss. Indikator lain dapat digabungkan sebagai kondisi penyaringan untuk meningkatkan waktu masuk.
Strategi ini berhasil menggabungkan trend tracking moving average dan ATR stop loss, dengan parameter optimasi dapat disesuaikan dengan karakteristik saham yang berbeda. Strategi ini membentuk batas yang jelas untuk membeli dan batas stop loss, sehingga logika perdagangan sederhana dan jelas. Secara keseluruhan, strategi stop loss yang mengikuti dua rata-rata bergerak ini stabil, sederhana, dan mudah dioptimalkan, cocok untuk strategi dasar perdagangan saham.
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//created by XPloRR 24-02-2018
strategy("XPloRR MA-Buy ATR-MA-Trailing-Stop Strategy",overlay=true, initial_capital=1000,default_qty_type=strategy.percent_of_equity,default_qty_value=100)
testStartYear = input(2005, "Start Year")
testStartMonth = input(1, "Start Month")
testStartDay = input(1, "Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2050, "Stop Year")
testStopMonth = input(12, "Stop Month")
testStopDay = input(31, "Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriodBackground = input(title="Background", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
emaPeriod = input(12, "Exponential MA")
smaPeriod = input(45, "Simple MA")
stopPeriod = input(12, "Stop EMA")
delta = input(6, "Trailing Stop #ATR")
testPeriod() => true
emaval=ema(close,emaPeriod)
smaval=sma(close,smaPeriod)
stopval=ema(close,stopPeriod)
atr=sma((high-low),15)
plot(emaval, color=blue,linewidth=1)
plot(smaval, color=orange,linewidth=1)
plot(stopval, color=lime,linewidth=1)
long=crossover(emaval,smaval)
short=crossunder(emaval,smaval)
//buy-sell signal
stop=0
inlong=0
if testPeriod()
if (long and (not inlong[1]))
strategy.entry("buy",strategy.long)
inlong:=1
stop:=emaval-delta*atr
else
stop:=iff((nz(emaval)>(nz(stop[1])+delta*atr))and(inlong[1]),emaval-delta*atr,nz(stop[1]))
inlong:=nz(inlong[1])
if ((stopval<stop) and (inlong[1]))
strategy.close("buy")
inlong:=0
stop:=0
else
inlong:=0
stop:=0
plot(stop,color=green,linewidth=1)