Strategi crossover purata bergerak pantas dan perlahan adalah strategi sederhana berdasarkan purata bergerak. Ia menggunakan dua purata bergerak, satu pantas dan satu perlahan. Apabila purata bergerak pantas melintasi di atas purata bergerak perlahan dari bawah, ia pergi panjang, menunjukkan bahawa harga mungkin naik. Apabila purata bergerak pantas melintasi di bawah purata bergerak perlahan dari atas, ia keluar dari posisinya, menunjukkan bahawa harga mungkin jatuh. Ini boleh berfungsi sebagai penunjuk untuk meramalkan tindakan harga masa depan.
Strategi ini menggunakan dua purata bergerak, satu pantas dan satu perlahan. Secara khusus, panjang lalai adalah 25 tempoh untuk purata bergerak pantas dan 62 tempoh untuk yang perlahan. Strategi ini membolehkan pemilihan pelbagai jenis purata bergerak, termasuk SMA, EMA, WMA, RMA dan VWMA.
Apabila purata bergerak pantas melintasi di atas purata bergerak perlahan dari bawah, ia menandakan bahawa harga jangka pendek telah mula menembusi harga jangka panjang, yang merupakan isyarat salib emas biasa, yang menunjukkan bahawa harga mungkin memasuki trend menaik. Strategi berjalan panjang pada titik ini. Apabila purata bergerak pantas melintasi di bawah purata bergerak perlahan dari atas, ia menandakan bahawa harga jangka pendek telah mula memecah harga jangka panjang, yang merupakan isyarat salib kematian, yang menunjukkan bahawa harga mungkin memasuki trend menurun. Strategi keluar dari posisinya pada titik ini.
Dengan menggunakan persilangan purata bergerak pantas dan perlahan untuk menentukan trend dan arah harga, dan mengambil kedudukan panjang atau dekat yang sepadan, keuntungan dapat direalisasikan.
Strategi ini mempunyai kelebihan berikut:
Ringkasnya, dengan crossover purata bergerak cepat dan perlahan sebagai isyarat perdagangan teras, strategi ini mempunyai keupayaan yang kuat dalam menilai trend harga masa depan.
Strategi ini juga mempunyai beberapa risiko berpotensi:
Untuk mengawal dan mengurangkan risiko ini, kaedah berikut boleh digunakan:
Arah utama untuk mengoptimumkan strategi termasuk:
Pilihan tempoh untuk purata bergerak pantas dan perlahan: parameter lalai mungkin tidak optimum, tempoh yang berbeza boleh diuji untuk mencari konfigurasi terbaik
Pilihan jenis purata bergerak: pelbagai jenis disediakan dan boleh menguji mana yang paling sesuai untuk produk tertentu
Gabungan dengan penunjuk atau strategi lain: boleh cuba menggabungkan dengan penunjuk turun naik, penunjuk harga jumlah atau trend mengikuti strategi untuk meningkatkan prestasi
Pengoptimuman adaptif parameter: membenarkan tempoh purata bergerak untuk menyesuaikan secara automatik berdasarkan turun naik pasaran dan kecairan untuk meningkatkan kestabilan
Bantuan model AI: gunakan algoritma pembelajaran mesin untuk menganalisis sejumlah besar data dan mencari peraturan perdagangan yang optimum secara automatik
Melalui kaedah pengoptimuman ini, peningkatan lanjut dalam keuntungan dan kestabilan strategi dapat dijangka.
Ringkasnya, strategi crossover purata bergerak pantas dan perlahan adalah strategi yang sangat praktikal. Ia menangkap corak perubahan harga dalam jangka masa yang berbeza, menggunakan crossover purata bergerak pantas
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //Author @divonn1994 initial_balance = 100 strategy(title='Fast v Slow Moving Averages Strategy', shorttitle = 'Fast v Slow', overlay=true, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=initial_balance) //Input for number of bars for moving average, Switch to choose moving average type, Display Options and Time Frame of trading---------------------------------------------------------------- fastBars = input.int(25, "Fast moving average length", minval=1) slowBars = input.int(62, "Slow moving average length", minval=1) strategy = input.string("EMA", "MA type", options = ["EMA", "VWMA", "SMA", "RMA", "WMA"]) redOn = input.string("On", "Red Background Color On/Off", options = ["On", "Off"], group='Display') greenOn = input.string("On", "Green Background Color On/Off", options = ["On", "Off"], group='Display') maOn = input.string("On", "Moving Average Plot On/Off", options = ["On", "Off"], group='Display') startMonth = input.int(title='Start Month 1-12 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=12, group='Beginning of Strategy') startDate = input.int(title='Start Date 1-31 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=31, group='Beginning of Strategy') startYear = input.int(title='Start Year 2000-2100 (set any start time to 0 for furthest date)', defval=2011, minval=2000, maxval=2100, group='Beginning of Strategy') endMonth = input.int(title='End Month 1-12 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=12, group='End of Strategy') endDate = input.int(title='End Date 1-31 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=31, group='End of Strategy') endYear = input.int(title='End Year 2000-2100 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=2100, group='End of Strategy') //Strategy Calculations----------------------------------------------------------------------------------------------------------------------------------------------------------------------- inDateRange = true maMomentum = switch strategy "EMA" => (ta.ema(close, fastBars) >= ta.ema(close, slowBars)) ? 1 : -1 "SMA" => (ta.sma(close, fastBars) >= ta.sma(close, slowBars)) ? 1 : -1 "RMA" => (ta.rma(close, fastBars) >= ta.rma(close, slowBars)) ? 1 : -1 "WMA" => (ta.wma(close, fastBars) >= ta.wma(close, slowBars)) ? 1 : -1 "VWMA" => (ta.vwma(close, fastBars) >= ta.vwma(close, slowBars)) ? 1 : -1 => runtime.error("No matching MA type found.") float(na) fastMA = switch strategy "EMA" => ta.ema(close, fastBars) "SMA" => ta.sma(close, fastBars) "RMA" => ta.rma(close, fastBars) "WMA" => ta.wma(close, fastBars) "VWMA" => ta.vwma(close, fastBars) => runtime.error("No matching MA type found.") float(na) slowMA = switch strategy "EMA" => ta.ema(close, slowBars) "SMA" => ta.sma(close, slowBars) "RMA" => ta.rma(close, slowBars) "WMA" => ta.wma(close, slowBars) "VWMA" => ta.vwma(close, slowBars) => runtime.error("No matching MA type found.") float(na) //Enter or Exit Positions-------------------------------------------------------------------------------------------------------------------------------------------------------------------- if ta.crossover(maMomentum, 0) if inDateRange strategy.entry('long', strategy.long, comment='long') if ta.crossunder(maMomentum, 0) if inDateRange strategy.close('long') //Plot Strategy Behavior--------------------------------------------------------------------------------------------------------------------------------------------------------------------- plot(series = maOn == "On" ? fastMA : na, title = "Fast Moving Average", color = color.new(color.white,0), linewidth=2, offset=1) plot(series = maOn == "On" ? slowMA : na, title = "Slow Moving Average", color = color.new(color.purple,0), linewidth=3, offset=1) bgcolor(color = inDateRange and (greenOn == "On") and maMomentum > 0 ? color.new(color.green,75) : inDateRange and (redOn == "On") and maMomentum <= 0 ? color.new(color.red,75) : na, offset=1)