
Strategi persilangan rata-rata laju adalah strategi rata-rata bergerak yang mudah. Ia menggunakan dua rata-rata bergerak, cepat dan perlahan, yang menunjukkan harga mungkin naik apabila rata-rata bergerak cepat melintasi rata-rata bergerak perlahan dari bawah; dan rata-rata bergerak cepat melintasi rata-rata bergerak perlahan dari atas ke bawah, yang menunjukkan harga mungkin turun.
Strategi ini menggunakan dua rata-rata bergerak, cepat dan perlahan. Secara khusus, panjang rata-rata bergerak cepat adalah 25 kitaran secara default, dan panjang rata-rata bergerak perlahan adalah 62 kitaran secara default. Strategi ini membolehkan anda memilih pelbagai jenis rata-rata bergerak, termasuk SMA, EMA, WMA, RMA, dan VWMA.
Apabila rata-rata bergerak cepat melintasi rata-rata bergerak perlahan dari bawah, menunjukkan harga jangka pendek mula menembusi harga jangka panjang, merupakan isyarat silang emas yang tipikal, menunjukkan harga mungkin memasuki saluran naik, ketika ini strategi melakukan banyak; apabila rata-rata bergerak cepat melintasi rata-rata bergerak perlahan dari atas ke bawah, menunjukkan harga jangka pendek mula menembusi harga jangka panjang, adalah isyarat silang mati, menunjukkan harga mungkin memasuki saluran turun, ketika ini strategi melonggarkan.
Dengan cara ini, trend dan arah harga dapat ditentukan melalui persimpangan garis rata-rata yang cepat dan perlahan, dan dengan itu, anda boleh mengambil posisi yang lebih tinggi atau lebih rendah, dan dengan itu anda boleh memperoleh keuntungan.
Strategi ini mempunyai kelebihan berikut:
Secara keseluruhannya, strategi ini menggunakan persimpangan rata-rata yang perlahan sebagai isyarat perdagangan teras, dan mempunyai keupayaan yang kuat untuk menilai trend harga masa depan, dan berdasarkan kelebihan trend, ia boleh menghasilkan keuntungan yang baik, yang layak untuk digunakan dalam pertempuran.
Strategi ini juga mempunyai risiko yang berpotensi:
Risiko ini boleh dikawal dan diperbaiki dengan:
Strategi ini boleh dioptimumkan dengan:
Pengambilan kitaran untuk garis rata-rata cepat dan garis rata-rata lambat: parameter lalai semasa mungkin tidak optimum, anda boleh mencuba parameter kitaran yang berbeza untuk mencari konfigurasi terbaik
Pilihan jenis purata bergerak: Pelbagai jenis purata bergerak tersedia untuk menguji jenis mana yang paling berkesan untuk varieti tertentu
Gabungan dengan petunjuk atau strategi lain: boleh cuba dengan indikator kadar turun naik, indikator harga atau strategi trend untuk meningkatkan keberkesanan
Optimasi penyesuaian parameter: membolehkan parameter kitaran purata disesuaikan secara automatik dengan turun naik pasaran dan kecairan, meningkatkan kestabilan
Pembantu model AI: Menggunakan algoritma pembelajaran mesin untuk menganalisis banyak data dan secara automatik mencari peraturan perdagangan yang optimum
Melalui kaedah pengoptimuman ini, prestasi pendapatan dan kestabilan strategi dijangka akan meningkat.
Strategi persilangan garis rata-rata yang cepat dan perlahan secara keseluruhan adalah strategi pengesanan trend yang sangat praktikal. Ia memahami peraturan perubahan harga pada skala masa yang berbeza. Dengan melangkaui garis rata-rata yang cepat dan perlahan, ia menilai kemungkinan trend dan arah harga di masa depan.
/*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)