Strategi Crossover Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2023-12-08 12:20:42
Tag:

img

Ringkasan

Strategi ini menjana isyarat perdagangan dengan mengira dua purata bergerak dari tempoh yang berbeza dan merangka titik persilangan mereka. Ia pergi panjang apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang, dan pergi pendek apabila purata bergerak jangka pendek melintasi di bawah purata bergerak jangka panjang.

Logika Strategi

Strategi ini berdasarkan kelebihan purata bergerak - mereka menghapuskan rawak dalam urutan harga dan mengekstrak trend utama. Strategi ini menggunakan sistem purata bergerak ganda yang terdiri daripada garis 7 hari dan 20 hari, dua tempoh yang biasa digunakan dan cukup pasti.

Apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang, ia menandakan bahawa harga memasuki trend menaik. Apabila melintasi di bawah, ia menandakan harga memasuki trend menurun. Menurut logika ini, kita pergi panjang atau pendek masing-masing.

Secara khusus, strategi ini mengira purata bergerak mudah 7 hari (SMA) dan purata bergerak mudah 20 hari. Apabila kedua-dua purata bersilang, ia menilai pembalikan trend dan mencetuskan isyarat perdagangan. Untuk membezakan antara jenis silang, kita menentukan garis jangka pendek berada di atas garis jangka panjang sebagai trend harga menaik, dan sebaliknya untuk trend menurun. Apabila garis jangka pendek melintasi di atas garis jangka panjang, iaitu permulaan trend menaik, kedudukan panjang dimasukkan. Apabila garis jangka pendek melintasi di bawah, iaitu permulaan trend menaik, kedudukan pendek dimasukkan.

Analisis Kelebihan

(1) Logik strategi adalah mudah dan mudah difahami dan dilaksanakan.

(2) Purata bergerak sebagai penunjuk pengesanan trend dapat menapis bunyi bising harga dengan berkesan.

(3) Konfigurasi parameter yang fleksibel untuk memenuhi keadaan pasaran dan keperluan perdagangan yang berbeza.

(4) Penggunaan dua tempoh purata bergerak yang biasa digunakan memudahkan untuk menentukan isyarat perdagangan yang jelas.

(5) Visualisasi yang kuat untuk trend intuitif, pengenalan tahap utama dan lain-lain.

(6) Parameter boleh dioptimumkan melalui backtesting untuk meningkatkan pulangan strategi.

Analisis Risiko

(1) Strategi ini agak sensitif terhadap turun naik pasaran. Whipsaws boleh membawa kepada kerugian yang kerap dalam tempoh yang berbeza.

(2) Crossovers mungkin tidak tepat menentukan tahap pembalikan trend dan boleh mencetuskan isyarat yang salah.

(3) Peraturan yang kaku tidak dapat disesuaikan dengan peristiwa drastis yang mempengaruhi pasaran, yang berpotensi menyebabkan kerugian besar.

(4) Parameter yang tidak betul juga boleh membawa kepada isyarat yang tidak tepat dan perdagangan yang terlepas.

Untuk mengurangkan risiko ini, parameter boleh diselaraskan dengan sewajarnya. Penunjuk lain boleh ditambah untuk pengesahan. Strategi stop loss boleh mengawal kerugian. Parameter atau strategi boleh diselaraskan mengikut rejimen pasaran.

Arahan Peningkatan

(1) Menggabungkan penunjuk teknikal lain untuk membentuk strategi gabungan boleh meningkatkan ketepatan isyarat.

(2) Menambah strategi stop loss untuk mengawal kerugian perdagangan tunggal dengan berkesan.

(3) Ujian dan pengoptimuman tempoh purata bergerak. Mencuba kombinasi pantas dan perlahan yang berbeza untuk mencari parameter terbaik. purata bergerak lain seperti EMA, WMA juga boleh diuji.

(4) Penyesuaian parameter berdasarkan produk dan keadaan pasaran yang berbeza.

Kesimpulan

Strategi crossover purata bergerak adalah strategi trend berikut yang sangat biasa dan asas. Dengan mengira dua purata bergerak dari tempoh yang berbeza dan memerhatikan persilangan mereka, ia menilai perubahan trend harga. Isyarat perdagangan dihasilkan apabila purata bergerak tempoh yang lebih pendek melintasi di atas atau di bawah yang lebih lama. Logik mudah dilaksanakan dan fleksibel untuk disesuaikan, menjadikannya strategi kuantiti pengenalan. Tetapi ia juga mempunyai kelemahan seperti kepekaan terhadap turun naik pasaran dan isyarat yang tidak tepat. Dengan menggabungkan dengan penunjuk lain, menambah berhenti, dan pengoptimuman parameter, strategi dapat ditingkatkan menjadi yang sangat praktikal untuk perdagangan kuantitatif.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Ma stratégie", overlay=true)

// Multi-timeframe and price input
pricetype = input(close, title="Price Source For The Moving Averages")
useCurrentRes = input(true, title="Use Current Timeframe As Resolution?")
resCustom = input(title="Use Different Timeframe? Then Uncheck The Box Above",  defval="W")
res = useCurrentRes ? timeframe.period : resCustom
price = request.security(syminfo.tickerid, res, pricetype)

// MA period input
shortperiod = input(7, title="Short Period Moving Average")
longperiod = input(20, title="Long Period Moving Average")



short = ema(price, shortperiod) 
long = ema(price, longperiod) 
   
// MA trend direction color
shortcolor = short > short[1] ? lime : short < short[1] ? red : blue
longcolor = long > long[1] ? lime : long < long[1] ? red : blue

// MA output
MA1 = plot(short, title="Short Period Moving Average", style=linebr, linewidth=2, color=shortcolor)
MA2 = plot(long, title="Long Period Moving Average", style=linebr, linewidth=4, color=longcolor)
fill(MA1, MA2, color=silver, transp=50)

// MA trend bar color
TrendingUp() => short > long 
TrendingDown() => short < long 
barcolor(TrendingUp() ? green : TrendingDown() ? red : blue)

// MA cross alert
MAcrossing = cross(short, long) ? short : na
plot(MAcrossing, style = cross, linewidth = 4,color=black)

// MA cross background color alert
Uptrend() => TrendingUp() and TrendingDown()[1]
Downtrend() => TrendingDown() and TrendingUp()[1]
bgcolor(Uptrend() ? green : Downtrend() ? red : na,transp=50)

// Buy and sell alert
Buy = Uptrend() and close > close[1]
Sell = Downtrend() and close < close[1]
plotshape(Buy, color=black, style=shape.arrowup, text="Buy", location=location.bottom)
plotshape(Sell, color=black, style=shape.arrowdown, text="Sell", location=location.top)



if (Buy)
    strategy.entry("My Long Entry Id", strategy.long)


if (Sell)
    strategy.entry("My Short Entry Id", strategy.short)

Lebih lanjut