Trend Mengikut Strategi Berdasarkan Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2023-11-27 15:57:15
Tag:

img

Ringkasan

Ini adalah strategi mengikuti trend berdasarkan purata bergerak. Ia menggunakan penunjuk Ichimoku Cloud untuk menentukan arah trend digabungkan dengan purata bergerak 200 hari untuk menapis isyarat, dengan itu mengesan trend.

Prinsip Strategi

Strategi ini terutamanya menggunakan garis penukaran dan garis asas Ichimoku Cloud untuk menilai arah trend. Garis penukaran adalah purata harga median 9 hari dan garis asas adalah purata harga median 26 hari. Isyarat beli dihasilkan apabila garis penukaran melintasi di atas garis asas dan isyarat jual apabila melintasi di bawah.

Strategi ini juga menggunakan purata bergerak 200 hari untuk menapis isyarat. Hanya apabila harga penutupan di atas garis 200 hari isyarat beli akan dicetuskan. Ini menapis kebanyakan isyarat palsu.

Di sisi keluar, strategi hanya menggunakan garis penukaran yang melintasi di bawah garis asas sebagai isyarat penutupan.

Analisis Kelebihan

Strategi ini menggabungkan indikator penilaian trend Ichimoku Cloud dan indikator penapisan trend jangka panjang garis 200 hari, yang dapat menjejaki trend dengan berkesan dan menapis kebanyakan isyarat palsu.

Berbanding dengan hanya menggunakan purata bergerak, strategi ini dapat menangkap titik perubahan trend dengan lebih baik dan menyesuaikan kedudukan tepat pada masanya.

Analisis Risiko

Strategi ini bergantung terutamanya pada Ichimoku Cloud untuk menentukan arah trend, yang juga boleh menghasilkan isyarat palsu.

Di samping itu, tetapan parameter yang tidak betul juga boleh menyebabkan prestasi strategi yang buruk. Jika parameter garis penukaran terlalu pendek, isyarat palsu mudah terbentuk; jika parameter garis asas terlalu panjang, kesan penjejakan merosot. Penyesuaian parameter untuk keseimbangan diperlukan.

Arahan pengoptimuman

Pertimbangkan untuk memasukkan penunjuk lain untuk meningkatkan kualiti isyarat, seperti penunjuk KDJ untuk menapis isyarat di kawasan overbought / oversold.

Di sisi parameter, uji lebih banyak kombinasi, seperti menyesuaikan parameter garisan penukaran kepada 5 atau 7 hari untuk isyarat perdagangan yang lebih sensitif.

Di samping itu, pertimbangkan untuk melumpuhkan strategi di bawah persekitaran yang tidak menentu tertentu untuk mengelakkan kesan perubahan liar.

Kesimpulan

Strategi ini mengintegrasikan kelebihan penilaian trend dan penapisan jangka panjang, yang dapat dengan berkesan mengesan trend jangka menengah dan panjang. Sementara itu, tetapan parameter dan langkah kawalan risiko juga memerlukan pengoptimuman berterusan untuk mengurangkan isyarat palsu dan kesan dari turun naik. Secara keseluruhan, strategi ini mempunyai prestasi yang baik dan nilai praktikal untuk perdagangan sebenar.


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