Strategi Lanjutan Tren yang Kuat

Penulis:ChaoZhang, Tanggal: 2024-01-29 16:57:01
Tag:

img

Gambaran umum

Strategi ini didasarkan pada rata-rata bergerak. Ini berjalan lama setelah koreksi jangka pendek dalam tren naik. Ini termasuk strategi trend berikut.

Prinsip Strategi

Strategi ini menggunakan 3 garis EMA dengan periode yang berbeda. Garis EMA1 dengan periode yang lebih pendek digunakan untuk menilai tren jangka pendek. Garis EMA2 dan EMA3 dengan periode yang lebih lama digunakan untuk menentukan tren jangka menengah-panjang, di mana EMA3 memiliki periode terpanjang. Ketika garis EMA1 jangka pendek naik, itu menunjukkan bahwa itu berada dalam tren kenaikan jangka pendek. Jika EMA2 di atas EMA3, itu berarti jangka menengah-panjang juga berada dalam tren kenaikan, jadi ini adalah waktu yang baik untuk masuk jangka panjang. Secara khusus, sinyal perdagangan dihasilkan ketika harga melintasi garis EMA1. Untuk lebih memverifikasi stabilitas tren, dibutuhkan bahwa EMA2 dan EMA3 menunjuk ke atas dan bar terakhir juga meningkat di bar sinyal filter, yang membantu memfilter sinyal dari koreksi jangka pendek yang salah.

Stop loss line dan take profit line diatur untuk mengunci keuntungan dan kerugian. Secara khusus, stop loss line bergerak sesuai dengan nilai ATR, dan take profit line juga bergerak berdasarkan nilai ATR.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah bahwa ia dapat secara efektif menangkap tren kenaikan jangka menengah dan panjang, sementara juga memperhitungkan koreksi jangka pendek, yang membuat waktu penahanannya dan ruang keuntungan yang cukup besar.

Selain itu, pengaturan stop loss dan take profit juga membuat risikonya terkendali.

Analisis Risiko

Risiko terbesar dari strategi ini adalah bahwa ia tidak dapat menentukan titik pembalikan tren. Jika tren jangka menengah-panjang membalikkan sementara jangka pendek masih naik, itu akan menghasilkan sinyal panjang yang salah untuk memasuki pasar, yang dapat menyebabkan kerugian yang lebih besar.

Selain itu, kerugian perdagangan yang tidak perlu juga dapat terjadi di pasar yang terikat rentang.

Arahan Optimasi

Pertimbangkan untuk menyesuaikan parameter siklus EMA berdasarkan karakteristik varietas perdagangan tertentu agar lebih sesuai dengan siklus pertengahan panjang varietas.

Kombinasi dengan indikator lain untuk menentukan akhir dari penyesuaian jangka pendek dapat menghindari entri yang salah.

Pertimbangkan untuk menyesuaikan koefisien stop loss berdasarkan nilai ATR, dengan meredakan jarak stop loss yang tepat ketika ATR besar.

Kesimpulan

Secara umum, strategi ini adalah strategi trend jangka menengah dan panjang yang berkinerja baik. Strategi ini menentukan arah tren melalui moving average, waktu masuk melalui sinyal pullback, dan mengunci keuntungan dan kerugian melalui pengaturan stop loss dan take profit.


/*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)



Lebih banyak