Strategi Crossover Rata-rata Bergerak

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

img

Gambaran umum

Strategi ini menghasilkan sinyal perdagangan dengan menghitung dua rata-rata bergerak dari periode yang berbeda dan memetakan titik persilangan mereka.

Logika Strategi

Strategi ini didasarkan pada keuntungan dari rata-rata bergerak - mereka menghilangkan keacakan dalam urutan harga dan mengekstrak tren utama.

Ketika rata-rata bergerak jangka pendek melintasi di atas rata-rata bergerak jangka panjang, itu menandakan bahwa harga memasuki tren naik. Ketika melintasi di bawah, itu menandakan harga memasuki tren turun. Menurut logika ini, kita pergi panjang atau pendek masing-masing.

Secara khusus, strategi ini menghitung rata-rata bergerak sederhana 7 hari (SMA) dan rata-rata bergerak sederhana 20 hari. Ketika dua rata-rata bersilang, ia menilai pembalikan tren dan memicu sinyal perdagangan. Untuk membedakan antara jenis crossover, kita mendefinisikan garis jangka pendek berada di atas garis jangka panjang sebagai tren harga naik, dan sebaliknya untuk tren menurun. Ketika garis jangka pendek melintasi di atas garis jangka panjang, yaitu awal tren naik, posisi panjang dimasukkan. Ketika garis jangka pendek melintasi di bawah, yaitu awal tren turun, posisi pendek dimasukkan.

Analisis Keuntungan

(1) Logika strategi sederhana dan mudah dimengerti dan diterapkan.

(2) Rata-rata bergerak sebagai indikator pelacakan tren dapat secara efektif menyaring beberapa kebisingan dalam harga.

(3) Konfigurasi parameter yang fleksibel untuk memenuhi kondisi pasar dan persyaratan perdagangan yang berbeda.

(4) Penggunaan dua periode rata-rata bergerak yang umum digunakan memudahkan untuk menentukan sinyal perdagangan yang jelas.

(5) Visualisasi yang kuat untuk tren intuitif, identifikasi tingkat kunci dll.

(6) Parameter dapat dioptimalkan melalui backtesting untuk meningkatkan return strategi.

Analisis Risiko

(1) Strategi ini sangat sensitif terhadap fluktuasi pasar.

(2) Crossover mungkin tidak secara akurat menentukan tingkat pembalikan tren dan dapat memicu sinyal yang salah.

(3) Aturan yang kaku tidak dapat beradaptasi dengan peristiwa drastis yang mempengaruhi pasar, yang berpotensi menyebabkan kerugian besar.

(4) Parameter yang tidak tepat juga dapat menyebabkan sinyal yang tidak akurat dan perdagangan yang terlewatkan.

Untuk mengurangi risiko ini, parameter dapat disesuaikan sesuai. Indikator lain dapat ditambahkan untuk konfirmasi. Strategi stop loss dapat mengendalikan kerugian. Parameter atau strategi dapat disesuaikan sesuai dengan rezim pasar.

Arah Peningkatan

(1) Menggabungkan indikator teknis lain untuk membentuk strategi gabungan dapat meningkatkan akurasi sinyal.

(2) Menambahkan strategi stop loss untuk mengontrol kerugian perdagangan tunggal secara efektif.

(3) Pengujian dan pengoptimalan periode rata-rata bergerak. Mencoba kombinasi cepat dan lambat yang berbeda untuk menemukan parameter terbaik. Rata-rata bergerak lainnya seperti EMA, WMA juga dapat diuji.

(4) Penyesuaian parameter berdasarkan produk dan kondisi pasar yang berbeda.

Kesimpulan

Strategi crossover rata-rata bergerak adalah strategi yang sangat tipikal dan dasar mengikuti tren. Dengan menghitung dua rata-rata bergerak dari periode yang berbeda dan mengamati crossover mereka, ia menilai perubahan tren harga. Sinyal perdagangan dihasilkan ketika rata-rata bergerak periode yang lebih pendek melintasi di atas atau di bawah yang lebih lama. Logika sederhana ini mudah diterapkan dan fleksibel disesuaikan, menjadikannya strategi kuantitatif pengantar.


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