
Strategi lintas rata-rata cepat adalah strategi rata-rata bergerak sederhana. Ini menggunakan dua rata-rata bergerak, cepat dan lambat, yang berarti harga mungkin naik ketika rata-rata bergerak cepat melintasi rata-rata bergerak lambat dari bawah; dan yang berarti harga mungkin turun ketika rata-rata bergerak cepat melintasi rata-rata bergerak lambat dari atas.
Strategi ini menggunakan dua rata-rata bergerak, cepat dan lambat. Secara khusus, panjang rata-rata bergerak cepat adalah 25 siklus secara default, dan panjang rata-rata bergerak lambat adalah 62 siklus secara default. Strategi ini memungkinkan untuk memilih berbagai jenis rata-rata bergerak, termasuk SMA, EMA, WMA, RMA, dan VWMA.
Ketika rata-rata bergerak cepat dari atas melintasi rata-rata bergerak lambat dari bawah, menunjukkan harga jangka pendek mulai menembus harga jangka panjang, termasuk sinyal crossing emas yang khas, menunjukkan bahwa harga mungkin memasuki saluran naik, ketika strategi melakukan banyak; ketika rata-rata bergerak cepat dari atas ke bawah melintasi rata-rata bergerak lambat dari atas, menunjukkan bahwa harga jangka pendek mulai menembus harga jangka panjang, termasuk sinyal crossing mati, menunjukkan bahwa harga mungkin memasuki saluran turun, ketika strategi melangsungkan posisi.
Dengan cara ini, trend dan arah harga dapat diukur melalui persilangan garis rata-rata yang cepat dan lambat, dan dengan demikian melakukan over atau under position, sehingga menghasilkan keuntungan.
Strategi ini memiliki keuntungan sebagai berikut:
Secara keseluruhan, strategi ini memiliki kemampuan yang kuat untuk menilai tren harga di masa depan dengan menggunakan persilangan rata-rata cepat dan lambat sebagai sinyal perdagangan inti, dan berdasarkan keuntungan dari pelacakan tren, keuntungan yang baik dapat diperoleh, layak untuk diterapkan di lapangan.
Strategi ini juga memiliki beberapa potensi risiko:
Risiko-risiko ini dapat dikontrol dan ditingkatkan dengan:
Strategi yang dapat dioptimalkan meliputi:
Periode pemilihan rata-rata cepat dan rata-rata lambat: parameter default saat ini mungkin tidak optimal, Anda dapat mencoba parameter periode yang berbeda untuk mencari konfigurasi optimal
Pilihan jenis rata-rata bergerak: berbagai jenis rata-rata bergerak tersedia saat ini untuk menguji jenis mana yang paling efektif untuk varietas tertentu
Kombinasi dengan indikator atau strategi lain: Anda dapat mencoba kombinasi dengan indikator volatilitas, indikator harga atau strategi pelacakan tren untuk meningkatkan efektivitas
Optimalisasi penyesuaian parameter: memungkinkan parameter siklus rata-rata untuk menyesuaikan secara otomatis dengan volatilitas dan likuiditas pasar, meningkatkan stabilitas
AI Model Assist: Menggunakan algoritma pembelajaran mesin untuk menganalisis sejumlah besar data dan secara otomatis menemukan aturan perdagangan yang optimal
Dengan cara-cara optimasi ini, diharapkan dapat meningkatkan kinerja dan stabilitas pendapatan strategi.
Secara keseluruhan, strategi persimpangan rata-rata cepat adalah strategi pelacakan tren yang sangat praktis. Strategi ini menangkap aturan perubahan harga pada skala waktu yang berbeda, dan menilai kemungkinan tren dan arah harga di masa depan dengan menerobos rata-rata cepat dan rata-rata lambat. Ide strategi sederhana dan jelas, mudah dimengerti dan diimplementasikan, parameter dapat disesuaikan dengan fleksibilitas, serta reliabilitas yang tinggi, tingkat otomatisasi yang tinggi, aplikasi yang luas, dan skalabilitas yang kuat.
/*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)