Tren Mengikuti Strategi Berdasarkan Rata-rata Bergerak

Penulis:ChaoZhangTanggal: 2023-11-27 15:57:15
Tag:

img

Gambaran umum

Ini adalah strategi mengikuti tren berdasarkan rata-rata bergerak. Ini menggunakan indikator Ichimoku Cloud untuk menentukan arah tren dikombinasikan dengan rata-rata bergerak 200 hari untuk menyaring sinyal, sehingga melacak tren.

Prinsip Strategi

Strategi ini terutama menggunakan garis konversi dan garis dasar Ichimoku Cloud untuk menilai arah tren. Garis konversi adalah rata-rata harga median 9 hari dan garis dasar adalah rata-rata harga median 26 hari. Sinyal beli dihasilkan ketika garis konversi melintasi di atas garis dasar dan sinyal jual ketika melintasi di bawah.

Strategi ini juga menggunakan rata-rata bergerak 200 hari untuk menyaring sinyal. Hanya ketika harga penutupan berada di atas garis 200 hari sinyal beli akan dipicu. Ini menyaring sebagian besar sinyal palsu.

Di sisi keluar, strategi hanya menggunakan garis konversi yang melintasi di bawah garis dasar sebagai sinyal penutupan.

Analisis Keuntungan

Strategi ini menggabungkan indikator penilaian tren Ichimoku Cloud dan indikator penyaringan tren jangka panjang garis 200 hari, yang dapat secara efektif melacak tren dan menyaring sebagian besar sinyal palsu.

Dibandingkan dengan hanya menggunakan rata-rata bergerak, strategi ini dapat lebih baik menangkap titik balik tren dan menyesuaikan posisi tepat waktu.

Analisis Risiko

Strategi ini terutama bergantung pada Ichimoku Cloud untuk menentukan arah tren, yang juga dapat menghasilkan sinyal palsu.

Selain itu, pengaturan parameter yang tidak tepat juga dapat menyebabkan kinerja strategi yang buruk. Jika parameter garis konversi terlalu pendek, sinyal palsu mudah terbentuk; jika parameter garis dasar terlalu panjang, efek pelacakan memburuk.

Arahan Optimasi

Pertimbangkan untuk memasukkan indikator lain untuk meningkatkan kualitas sinyal, seperti indikator KDJ untuk menyaring sinyal di area overbought/oversold.

Di sisi parameter, uji lebih banyak kombinasi, seperti menyesuaikan parameter garis konversi menjadi 5 atau 7 hari untuk sinyal perdagangan yang lebih sensitif. Juga uji modifikasi parameter garis dasar menjadi sekitar 20 hari untuk pelacakan saldo.

Selain itu, pertimbangkan untuk menonaktifkan strategi di bawah lingkungan volatile tertentu untuk menghindari dampak dari perubahan liar.

Kesimpulan

Strategi ini mengintegrasikan keunggulan penilaian tren dan indikator penyaringan jangka panjang, yang dapat secara efektif melacak tren jangka menengah dan panjang. Sementara itu, pengaturan parameter dan langkah-langkah pengendalian risiko juga perlu dioptimalkan terus-menerus untuk mengurangi sinyal palsu dan dampak dari fluktuasi. Secara keseluruhan, strategi ini memiliki kinerja yang layak dan nilai praktis untuk perdagangan aktual.


/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="TK Cross > EMA200 Strat",  overlay=true)

ema200 = ema(close, 200)
conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

plot(conversionLine, color=#0496ff, title="Conversion Line", linewidth=3)
plot(baseLine, color=#991515, title="Base Line", linewidth=3)
plot(close, offset = -displacement, color=#459915, title="Lagging Span")

p1 = plot(leadLine1, offset = displacement, color=green,
 title="Lead 1")
p2 = plot(leadLine2, offset = displacement, color=red, 
 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)

plot(ema200, color=purple, linewidth=4,title='ema200')
strategy.initial_capital = 50000

strategy.entry('tkcross', strategy.long, strategy.initial_capital / close, when=conversionLine>baseLine and close > ema200)
strategy.close('tkcross', when=conversionLine<baseLine)


start = input(2, minval=0, maxval=10, title="Start - Default = 2 - Multiplied by .01")
increment = input(2, minval=0, maxval=10, title="Step Setting (Sensitivity) - Default = 2 - Multiplied by .01" )
maximum = input(2, minval=1, maxval=10, title="Maximum Step (Sensitivity) - Default = 2 - Multiplied by .10")
sus = input(true, "Show Up Trending Parabolic Sar")
sds = input(true, "Show Down Trending Parabolic Sar")
disc = input(false, title="Start and Step settings are *.01 so 2 = .02 etc, Maximum Step is *.10 so 2 = .2")
//"------Step Setting Definition------"
//"A higher step moves SAR closer to the price action, which makes a reversal more likely."
//"The indicator will reverse too often if the step is set too high."

//"------Maximum Step Definition-----")
//"The sensitivity of the indicator can also be adjusted using the Maximum Step."
//"While the Maximum Step can influence sensitivity, the Step carries more weight"
//"because it sets the incremental rate-of-increase as the trend develops"

startCalc = start * .01
incrementCalc = increment * .01
maximumCalc = maximum * .10

sarUp = sar(startCalc, incrementCalc, maximumCalc)
sarDown = sar(startCalc, incrementCalc, maximumCalc)

colUp = close >= sarDown ? lime : na
colDown = close <= sarUp ? red : na

plot(sus and sarUp ? sarUp : na, title="Up Trending SAR", style=circles, linewidth=3,color=colUp)
plot(sds and sarDown ? sarDown : na, title="Up Trending SAR", style=circles, linewidth=3,color=colDown)





Lebih banyak