Sumber dimuat naik... memuat...

Strategi Scalping Crossover dengan Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2023-10-30 11:19:48
Tag:

img

Ringkasan

Dual Moving Average Crossover adalah strategi scalping yang mudah dan berkesan yang menggunakan isyarat silang antara harga dan purata bergerak sebagai isyarat masuk dan keluar untuk menangkap pergerakan trend jangka pendek.

Logika Strategi

Strategi ini menggunakan dua purata bergerak dari tempoh yang berbeza - garis MA jangka pendek dan garis MA jangka panjang. Ia menghasilkan isyarat beli apabila MA jangka pendek melintasi di atas MA jangka panjang dari bawah. Isyarat jual dihasilkan apabila MA jangka pendek melintasi di bawah MA jangka panjang dari atas.

Strategi ini mula-mula mentakrifkan pembolehubah length untuk menentukan tempoh garis MA yang lebih panjang sebagai 50. Kemudian ia mentakrifkan harga sebagai harga penutupan dan mengira nilai MA panjang 50 dan menyimpannya dalam pembolehubah ma. Ia seterusnya mentakrifkan bcond untuk memeriksa sama ada harga di atas nilai ma. Jika ya, bcount ditingkatkan dengan 1, jika tidak disetel semula kepada 0. Apabila bcond mencetuskan confirmBars kali berturut-turut (patuhan 2), isyarat beli dihasilkan. Isyarat jual dihasilkan dengan cara yang sama apabila harga jatuh di bawah ma.

Untuk menapis beberapa isyarat yang tidak sah, penapis tambahan seperti clc, clc0 dan clc1 ditambahkan yang memeriksa hubungan harga antara bar semasa dan sebelumnya. Isyarat perdagangan dihasilkan hanya apabila syarat-syarat ini dipenuhi.

Akhirnya, kedudukan sedia ada ditutup apabila harga melintasi garis MA ke belakang.

Kelebihan

  • Logik yang mudah, mudah difahami dan dilaksanakan.
  • Mencatatkan trend jangka pendek dengan berkesan menggunakan sistem MA.
  • Penapis tambahan mengurangkan gangguan daripada isyarat yang tidak sah.
  • Mekanisme stop loss tetap mengawal kerugian pada perdagangan tunggal.

Risiko

  • Rendah kepada whipsaws di pasaran yang berbeza, yang membawa kepada kos tambahan.
  • Parameter tetap seperti tempoh MA mungkin tidak sesuai dengan semua keadaan pasaran.
  • Stop loss tetap boleh keluar awal dalam pergerakan trend yang kuat di luar tahap berhenti.

Risiko boleh dikurangkan dengan menggunakan tempoh MA dinamik berdasarkan turun naik, hentian atau hentian peratusan, dll.

Peningkatan

Strategi ini boleh ditingkatkan dengan beberapa cara:

  1. Mengoptimumkan parameter MA secara dinamik berdasarkan turun naik.

  2. Tambah penapis tambahan seperti lonjakan kelantangan untuk meningkatkan kualiti isyarat.

  3. Gunakan hentian terapung atau peratusan untuk mengurangkan hentian awal.

  4. Gabungkan dengan penunjuk lain seperti MACD, RSI untuk pengesahan pelbagai keadaan.

  5. Tambah pengurusan risiko automatik seperti saiz kedudukan dinamik untuk mengawal kerugian setiap perdagangan.

  6. Gunakan pembelajaran mesin untuk model generasi isyarat yang lebih tepat.

Kesimpulan

Strategi crossover MA berganda adalah sistem yang berkesan untuk perdagangan jangka pendek. Parameter penyesuaian halus, pengurusan risiko dan menggabungkan dengan alat lain dapat meningkatkan keuntungan. Secara keseluruhan, ia mudah difahami dan dilaksanakan untuk scalping pergerakan intraday yang lebih kecil.


/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MovingAvg Cross", overlay=true)
length = input(50)
confirmBars = input(2)
price = close

ma = sma(price, length)

bcond = price > ma

bcount = 0
bcount := bcond ? nz(bcount[1]) + 1 : 0

clc=close[0]>close[1]
clc0=close[0]>open[0]
clc1=close[1]>open[1]

if clc and clc0 and clc1 and (bcount == confirmBars)
    strategy.entry("buy", strategy.long)


scond = price < ma
scount = 0
scount := scond ? nz(scount[1]) + 1 : 0

csc=close[0]<close[1]
csc0=close[0]<open[0]
csc1=close[1]<open[1]

if csc and csc0 and csc1 and (scount == confirmBars)
    strategy.entry("sell", strategy.short)

strategy.close("buy", when=scond)
strategy.close("sell",when=bcond)
    
plot(ma, color=color.red)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


Lebih lanjut