Strategi mengikut arah aliran berdasarkan purata bergerak


Tarikh penciptaan: 2023-11-27 15:57:15 Akhirnya diubah suai: 2023-11-27 15:57:15
Salin: 0 Bilangan klik: 565
1
fokus pada
1617
Pengikut

Strategi mengikut arah aliran berdasarkan purata bergerak

Gambaran keseluruhan

Strategi ini adalah strategi trend-tracking yang berasaskan garis rata. Ia menggunakan indikator grafik awan Ichimoku untuk menentukan arah trend, dan menggabungkan isyarat penapis purata bergerak 200 hari untuk mencapai trend-tracking.

Prinsip Strategi

Strategi ini menggunakan garis peralihan dan garis asas dari grafik awan untuk menentukan arah trend. Garis peralihan adalah purata harga pertengahan 9 hari yang lalu, dan garis asas adalah purata harga pertengahan 26 hari yang lalu. Apabila garis peralihan melintasi garis asas sebagai isyarat beli, dan melintasi bawah sebagai isyarat jual.

Strategi ini juga menggunakan purata bergerak 200 hari untuk menapis isyarat. Isyarat beli hanya akan dihasilkan apabila harga penutupan berada di atas garis 200 hari. Ini dapat menapis kebanyakan isyarat palsu.

Dalam penarikan diri, strategi yang mudah digunakan untuk menukar garis bawah dan menembusi garis asas sebagai isyarat kedudukan rata.

Analisis kelebihan

Strategi ini menggabungkan petanda trend penghakiman satu awan dan petanda penapis trend jangka panjang 200 hari, yang dapat mengesan trend dengan berkesan dan menapis kebanyakan isyarat palsu. Menggunakan parameter seperti purata harga pertengahan dapat mengurangkan kesan pada garis purata kerana turun naik harga yang tidak normal.

Strategi ini lebih baik untuk menangkap titik-titik perubahan trend dan dengan itu menyesuaikan kedudukan tepat pada masanya berbanding dengan menggunakan satu-satunya indikator seperti purata bergerak.

Analisis risiko

Strategi ini bergantung kepada arah trend yang ditentukan oleh indikator grafik awan, dan grafik awan itu sendiri akan menghasilkan isyarat yang salah. Jika penilaian menyimpang, strategi ini mungkin akan menyebabkan kerugian.

Selain itu, parameter yang tidak betul juga boleh menyebabkan prestasi strategi yang tidak baik. Jika parameter garis penukaran terlalu pendek, ia mudah membentuk isyarat palsu; Jika parameter garis asas terlalu panjang, kesan pengesanan akan menjadi buruk.

Arah pengoptimuman

Anda boleh mempertimbangkan untuk meningkatkan kualiti isyarat dengan menggunakan indikator lain, seperti indikator KDJ untuk menentukan kawasan overbought dan oversold untuk menapis isyarat. Atau menggunakan indikator ATR untuk menetapkan stop loss.

Dalam aspek parameter, lebih banyak kombinasi boleh diuji, seperti menyesuaikan parameter garisan penukaran selama 5 atau 7 hari, untuk mendapatkan isyarat perdagangan yang lebih sensitif. Ia juga boleh diuji untuk mengubah parameter garisan asas selama kira-kira 20 hari, untuk mengimbangi kesan pengesanan.

Selain itu, anda boleh mempertimbangkan untuk menutup strategi dalam keadaan yang bergelombang untuk mengelakkan kesan yang teruk.

ringkaskan

Strategi ini mengintegrasikan kelebihan penilaian trend dan penapis indikator jangka panjang, yang dapat mengesan trend jangka menengah dan panjang dengan berkesan. Pada masa yang sama, tetapan parameter dan langkah-langkah kawalan angin juga perlu terus dioptimumkan untuk mengurangkan kesan yang disebabkan oleh isyarat salah dan turun naik. Secara keseluruhan, strategi ini dapat berfungsi, dengan nilai operasi sebenar.

Kod sumber strategi
/*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)