Ini adalah strategi perdagangan yang mudah berdasarkan persilangan antara purata bergerak pantas dan perlahan. Ia menggunakan salib emas dan salib mati purata bergerak untuk menjana isyarat beli dan jual. Apabila purata bergerak pantas melintasi di atas purata bergerak perlahan, pergi panjang; apabila purata bergerak pantas melintasi di bawah purata bergerak perlahan, pergi pendek. Matlamatnya adalah untuk menangkap pembalikan trend dengan memerhatikan interaksi antara purata bergerak dari tempoh yang berbeza.
Strategi ini terutamanya bergantung pada persilangan antara purata bergerak eksponen (EMA) yang cepat dan purata bergerak mudah (SMA) yang perlahan untuk menjana isyarat perdagangan. Ia mula-mula mengira EMA yang cepat dan SMA yang perlahan, dengan tempoh yang ditetapkan masing-masing 13 dan 30. Kemudian, apabila EMA cepat melintasi SMA yang perlahan, isyarat panjang dihasilkan; apabila EMA cepat melintasi di bawah SMA yang perlahan, isyarat pendek dicetuskan.
Secara khusus, strategi ini mengira EMA cepat dan SMA perlahan menggunakan maFast dan maSlow. Kemudian ia menentukan pembolehubah enterLong dan exitLong untuk menentukan titik masuk dan keluar. Apabila maFast> maSlow, iaitu EMA pantas melintasi di atas SMA perlahan, ia menetapkan enterLong=true untuk mencetuskan entri panjang; apabila maSlow> maFast, iaitu EMA pantas melintasi di bawah SMA perlahan, ia menetapkan exitLong=true untuk menutup kedudukan. Akhirnya, strategi menghantar pesanan melalui strategy.entry apabila syarat dipenuhi.
Oleh itu, apabila momentum menaik jangka pendek mengatasi trend jangka panjang, EMA cepat melintasi di atas SMA perlahan, menjana isyarat beli; apabila momentum menurun jangka pendek mengatasi trend jangka panjang, EMA pantas melintasi di bawah SMA perlahan, menghasilkan isyarat jual. Dengan menangkap pembalikan trend merentasi jangka masa yang berbeza, ia bertujuan untuk membeli rendah dan menjual tinggi.
Strategi crossover purata bergerak mempunyai kelebihan berikut:
Mudah dan mudah difahami. purata bergerak adalah indikator yang biasa digunakan dan berkesan. Logik silang adalah mudah. Ini menjadikan strategi mudah difahami dan dilaksanakan untuk peniaga.
Strategi ini membolehkan tempoh tersuai untuk EMA yang cepat dan SMA yang perlahan, yang boleh disesuaikan untuk pasaran yang berbeza, meningkatkan kesesuaian.
Sinyal perdagangan yang boleh dipercayai. purata bergerak menapis bunyi pasaran dengan berkesan. silangannya menghasilkan isyarat yang agak boleh dipercayai. persilangan antara MA yang cepat dan lambat dapat menangkap perubahan dalam trend yang lebih luas.
Boleh digunakan dalam pelbagai persekitaran pasaran. Strategi ini berfungsi untuk pasaran trend dan julat. Parameter boleh diselaraskan untuk memenuhi keadaan yang berbeza.
Mudah digabungkan dengan penunjuk lain. Strategi boleh digabungkan dengan fleksibel dengan penunjuk seperti RSI untuk mewujudkan sistem yang lebih kuat.
Strategi ini juga mempunyai beberapa risiko:
Sinyal Whipsaw. Semasa trend yang tidak pasti, MAs boleh bersilang dengan kerap, menyebabkan kos perdagangan dan seluncur yang berlebihan.
Pasaran yang berbelit-belit boleh menyebabkan terjebak dalam julat.
Kesukaran dalam pengoptimuman parameter. Tempoh MA memberi kesan yang ketara terhadap prestasi strategi dan memerlukan ujian yang luas.
Isyarat kelewatan. MA secara semula jadi kelewatan, oleh itu isyarat silang cenderung terlambat dan mungkin terlepas titik masuk yang ideal.
Kekurangan pengurusan risiko. Strategi tidak mempunyai logik stop loss dan boleh menimbulkan perdagangan yang kehilangan besar.
Beberapa cara untuk mengoptimumkan strategi crossover purata bergerak:
Tambah penapis seperti RSI untuk mengurangkan isyarat palsu. Elakkan panjang apabila RSI tinggi dan elakkan pendek apabila RSI rendah.
Masukkan MA tambahan untuk mengesahkan isyarat, seperti MA 50 hari. Pergi panjang apabila MA cepat melintasi di atas MA sederhana dan MA sederhana melintasi di atas MA panjang dalam trend menaik.
Melaksanakan teknik stop loss seperti SAR parabolik untuk mengawal risiko. Hentian adaptif berdasarkan turun naik juga boleh berfungsi.
Mengoptimumkan parameter menggunakan kaedah seperti analisis berjalan maju dan pembelajaran mesin untuk meningkatkan prestasi di pasaran yang berubah.
Gunakan carta jangka masa yang lebih rendah dan corak candlestick untuk meningkatkan kualiti isyarat dan mengelakkan pembalikan yang tidak tepat.
Masukkan penunjuk jumlah untuk mengelakkan pecah palsu. Pengesahan jumlah boleh membuat isyarat lebih boleh dipercayai.
Strategi crossover purata bergerak adalah strategi perdagangan kuantitatif yang mudah namun praktikal. Ia menggunakan EMA yang cepat dan penyeberangan SMA yang perlahan untuk menjana isyarat perdagangan. Strategi ini mudah dilaksanakan dan digabungkan dengan penunjuk lain, tetapi juga mempunyai kelemahan seperti perdagangan yang berlebihan dan whipsaws. Dengan peningkatan yang betul dalam parameter dan pengurusan risiko, strategi dapat menjadi lebih kukuh dan menguntungkan. Secara keseluruhan, pendekatan crossover purata bergerak bernilai dipelajari dan digunakan untuk peniaga kuantitatif.
/*backtest start: 2023-08-26 00:00:00 end: 2023-09-12 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="Moving Average Cross EMA SMA", overlay=true, initial_capital=10000, currency='USD',default_qty_type=strategy.percent_of_equity,default_qty_value=100) // Based on strategy by lsills @ https://www.tradingview.com/script/oI8loEZ8-Moving-Average-Cross-Strategy/ // Strategy has several logic alternatives - comment out the undesired logic sections below, only 1 logic section can be active // === GENERAL INPUTS === // short Ema maFastSource = input(defval = close, title = "Fast EMA Source") maFastLength = input(defval = 13, title = "Fast EMA Period", minval = 1) // long Sma maSlowSource = input(defval = close, title = "Slow SMA Source") maSlowLength = input(defval = 30, title = "Slow SMA Period", minval = 1) // longer Sma maSlowerSource = input(defval = close, title = "Slower SMA Source") maSlowerLength = input(defval = 30, title = "Slower SMA Period", minval = 1) // === SERIES SETUP === /// a couple of ma's.. maFast = ema(maFastSource, maFastLength) maSlow = sma(maSlowSource, maSlowLength) maSlower = vwma(maSlowerSource, maSlowerLength) rsi = rsi(maSlowerSource, maSlowerLength) // === PLOTTING === fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30) slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30) slower = plot(maSlower, title = "Slower MA", color = teal, linewidth = 2, style = line, transp = 30) // === LOGIC === Basic - simply switches from long to short and vice-versa with each fast-slow MA cross enterLong = maFast> maSlow exitLong = maSlow> maFast // === LOGIC === Complex 1 - switches from long to short and vice-versa with each fast-slow MA cross but additional conditions must be met //enterLong = variance(maFast,maSlowLength) < 0.6 and close[0] > maFast and crossover(maFast, maSlow) and 1.1* maSlow > maSlower and rsi>rsi[2] //exitLong = variance(maFast,maSlowLength) < 0.6 and close[0] < maSlow and crossover(maSlow, maFast) and maSlow/1.1 < maSlower and rsi<rsi[2] // === LOGIC === Complex 2- switches from long to short and vice-versa with each fast-slow MA cross but additional conditions must be met //enterLong = maFast> maSlow and 1.1* maSlow > maSlower and rsi>rsi[1] and close > close[3] //and close > close[2] //exitLong = maSlow> maFast and maSlow/1.1 < maSlower and rsi<rsi[1] and close < close[3] // and close < close[2] // Entry // strategy.entry(id="Long Entry", long=true, when=enterLong) strategy.entry(id="Short Entry", long=false, when=exitLong) // === FILL ==== fill(fast, slow, color = maFast > maSlow ? green : red)