
Strategi ini didasarkan pada moving averages, dalam proses trend up, membuka posisi lebih banyak setelah pengetatan jangka pendek, dan merupakan strategi jenis trend tracking.
Strategi ini menggunakan 3 garis EMA dengan periode yang berbeda, garis EMA1 untuk menentukan tren jangka pendek, yang lebih pendek dari dua garis EMA lainnya; garis EMA2 dan EMA3 untuk menentukan tren jangka menengah, di mana garis EMA3 memiliki periode yang paling lama. Ketika garis EMA1 jangka pendek berputar, indikatornya berada dalam tren naik jangka pendek, garis EMA2 di atas garis EMA3 menunjukkan bahwa jangka menengah juga berada dalam tren naik, jadi ini adalah tempat yang lebih baik untuk melakukan overtime. Secara khusus, logika pembuatan sinyal perdagangan strategi ini adalah: ketika harga berputar di atas garis EMA1 menghasilkan beberapa sinyal.
Setting Stop Loss Leveling Line dan Stop Loss Leveling Line, dapat mengunci keuntungan. Secara khusus, Stop Loss Line bergerak sesuai dengan nilai ATR, dan Stop Loss Line juga diatur sesuai dengan nilai ATR.
Keuntungan terbesar dari strategi ini adalah kemampuan untuk secara efektif menangkap tren kenaikan dalam jangka panjang, sementara juga mempertimbangkan penyesuaian jangka pendek, yang membuatnya memiliki waktu pemegang dan ruang untuk keuntungan yang cukup besar.
Selain itu, sistem stop-loss dan stop-loss juga memungkinkan pengendalian risiko.
Risiko terbesar dari strategi ini adalah ketidakmampuan untuk menentukan titik pembalikan tren, dan jika tren garis tengah berbalik dan dalam jangka pendek masih naik, maka akan terjadi kesalahan dalam melakukan sinyal ganda dan masuk, yang dapat menyebabkan kerugian besar.
Selain itu, kerugian transaksi yang tidak perlu juga dapat terjadi dalam proses pencatatan.
Ada kemungkinan untuk menyesuaikan parameter siklus EMA sesuai dengan karakteristik varietas tertentu yang diperdagangkan, sehingga lebih sesuai dengan siklus garis tengah yang lebih panjang dari varietas tersebut.
Ini dapat dikombinasikan dengan indikator lain untuk menentukan akhir dari penyesuaian jangka pendek, untuk menghindari kesalahan masuk.
Anda dapat mempertimbangkan untuk menyesuaikan faktor stop loss sesuai dengan ukuran nilai ATR, dengan relaksasi yang tepat pada jarak stop loss jika ATR lebih besar.
Strategi ini secara keseluruhan merupakan strategi pelacakan tren garis tengah dan panjang yang berkinerja baik. Strategi ini digunakan untuk menentukan arah tren melalui rata-rata bergerak, sinyal mundur untuk menentukan waktu masuk, dan pengaturan stop loss untuk mengunci keuntungan. Namun, ada juga risiko pelacakan buta, yang harus digabungkan dengan penilaian pedagang sendiri tentang situasi untuk memutuskan apakah masuk atau tidak.
/*backtest
start: 2024-01-21 00:00:00
end: 2024-01-28 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Trend Continuation', shorttitle='Trend_Continuation', overlay=true)
// Input
price = input(close)
MA1_Length = input.int(50, step=1, title='EMA 1 Length')
MA2_Length = input.int(80, step=1, title='EMA 2 Length')
MA3_Length = input.int(200, step=1, title='EMA 3 Length')
numberOfCandles = input(1)
slATRFactor = input(3.5)
tpATRFactor = input(3.5)
ATRLength = input(14)
// switch1=input(true, title="Show Bar Color?")
// switch2=input(true, title="Show Moving Averages?")
// Calculation
MA1 = ta.ema(price, MA1_Length)
MA2 = ta.ema(price, MA2_Length)
MA3 = ta.ema(price, MA3_Length)
prev_price = close[numberOfCandles]
// Strategy
allPositive = true
for i = 0 to numberOfCandles - 1 by 1
if close[i] < close[i + 1] or close[i] < MA1
allPositive := false
break
long = MA2 > MA3 and price > MA1 and ta.crossunder(prev_price, MA1) and allPositive
// short = crossover(price, MA3) or ( change(price)>0 and change(MA1)>0 and crossover(price,MA1) and change(MA2)<0 )
if long
strategy.entry('Long', strategy.long, comment='Long')
bought = strategy.position_size[0] > strategy.position_size[1]
atrAtLong = ta.valuewhen(bought, ta.atr(ATRLength), 0)
// Stop loss and take profit
slPrice = strategy.position_avg_price - slATRFactor * atrAtLong
tpPrice = strategy.position_avg_price + tpATRFactor * atrAtLong
SL = plot(slPrice, title='SL', style=plot.style_linebr, linewidth=1, color=color.new(color.red, 0))
if price >= tpPrice and price < MA1
strategy.close('Long')
if price < strategy.position_avg_price
strategy.exit('Stop Loss', 'Long', stop=slPrice)
// Strategy Alert
alertcondition(long, title='Long Alert', message='Go Long!')
// alertcondition(short, title='EMA Slope + EMA Cross Strategy, Short Alert', message='Go Short!')
// MA trend bar color
// up = change(MA2)>0 and change(MA3)>0
// dn = change(MA2)<0 and change(MA3)<0
// bar_color = up?green:dn?red:blue
// barcolor(switch1?bar_color:na)
// MA trend output color
change_1 = ta.change(MA2)
MA2_color = ta.change(MA2) > 0 ? color.lime : change_1 < 0 ? color.red : color.blue
change_2 = ta.change(MA3)
MA3_color = ta.change(MA3) > 0 ? color.lime : change_2 < 0 ? color.red : color.blue
// MA output
// EMA2 = plot(switch2?MA2:na, title="EMA 2", style=linebr, linewidth=2, color=MA2_color)
// EMA3 = plot(switch2?MA3:na, title="EMA 3", style=linebr, linewidth=4, color=MA3_color)
// fill(EMA2, EMA3, color=silver, transp=50)
color_1 = MA2 > MA3 ? color.green : color.red
EMA1 = plot(MA1, title='EMA 1', style=plot.style_linebr, linewidth=1, color=color_1)
// EMA2 = plot(MA2, title="EMA 2", style=linebr, linewidth=2, color=blue)
// EMA3 = plot(MA3, title="EMA 3", style=linebr, linewidth=3, color=red)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)