Strategi ini adalah strategi perdagangan silang rata-rata bergerak yang khas. Strategi ini menggunakan persimpangan rata-rata bergerak cepat dan rata-rata bergerak lambat sebagai sinyal jual beli. Ketika rata-rata bergerak cepat melintasi rata-rata bergerak lambat dari bawah, dianggap sebagai sinyal beli; Ketika rata-rata bergerak cepat melintasi rata-rata bergerak lambat dari atas ke bawah, dianggap sebagai sinyal jual.
Strategi ini dilakukan melalui langkah-langkah berikut:
Setting fastMA dan slowMA.
Berdasarkan tipe input Type, perhitungan rata-rata bergerak cepat fast dan rata-rata bergerak lambat slow. Type = 1 untuk rata-rata bergerak sederhana, Type = 2 untuk rata-rata bergerak indeks.
Setel jangka waktu pengembalian start dan finish
Definisi fungsi silang: ketika fast melewati slow dari bawah, menghasilkan sinyal beli; ketika fast melewati slow dari atas, menghasilkan sinyal jual.
Pada saat fungsi silang dipicu, jika dalam jangka waktu pengamatan kembali, maka perintah untuk membeli dan membuka posisi atau menjual posisi kosong akan dikeluarkan.
Pada akhir jendela pengembalian atau di bawah fungsi silang, keluarkan perintah penutupan.
Menggambar rata-rata bergerak cepat (FAST) dan rata-rata bergerak lambat (SLOW).
Strategi ini menilai tren dalam periode kepemilikan dengan mengintersect rata-rata bergerak cepat dan lambat, dan menghasilkan sinyal perdagangan sesuai dengan itu. Pada saat yang sama, pengaturan jendela waktu pengembalian untuk mensimulasikan perdagangan nyata.
Strategi ini memiliki keuntungan sebagai berikut:
Penggunaan moving average untuk menentukan tren sangat efektif, karena dapat memfilter fluktuasi acak secara efektif.
Perpaduan antara rata-rata bergerak cepat dan lambat dapat mengidentifikasi perubahan tren.
Moving average parameter dapat disesuaikan dengan tren dari periode yang berbeda.
Anda dapat memilih rata-rata bergerak sederhana atau rata-rata bergerak indeks.
Parameter strategi dapat diuji dan dioptimalkan melalui fitur feedback.
Strategi logisnya sederhana, jelas, dan mudah dimengerti.
Menggambar grafik moving averages untuk menilai tren dan efek secara intuitif.
Strategi ini juga memiliki beberapa risiko:
Dalam konteks ini, mungkin terjadi kesalahan sinyal.
Rata-rata bergerak memiliki keterlambatan dan mungkin akan melewatkan titik balik.
Hanya bergantung pada perpotongan linear, tidak ada kombinasi dengan indikator atau filter kondisi lainnya.
Tidak mempertimbangkan dampak biaya transaksi.
Tidak ada strategi stop loss yang ditetapkan.
Pengaturan parameter yang tidak masuk akal dapat mempengaruhi efek kebijakan.
Skala waktu deteksi yang dipilih tidak tepat, dapat menyebabkan overmatch.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Ini akan meningkatkan akurasi sinyal dengan menggunakan indikator lain seperti MACD, RSI, dan lain-lain.
Tambahkan strategi stop loss untuk mengendalikan kerugian tunggal.
Optimalkan parameter moving average untuk menyesuaikan dengan periode yang berbeda.
Menambahkan manajemen posisi open warehouse, menggunakan posisi yang berbeda dalam kondisi pasar yang berbeda.
Mempertimbangkan biaya transaksi, mengubah titik masuk dan keluar.
Uji data dalam rentang waktu yang lebih lama untuk menghindari overmatch.
Menggunakan walks forward analysis untuk terus mengoptimalkan parameter.
Strategi crossover rata-rata bergerak adalah strategi pelacakan tren yang sederhana dan praktis. Ini dapat menyaring fluktuasi acak dan mengidentifikasi arah tren. Namun, ada juga beberapa masalah seperti keterbelakangan, yang harus digunakan dengan kombinasi indikator lain.
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// strategy("MavCrossover v2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
// Revision: 1
// Author: @ToS_MavericK
// === INPUT SMA ===
fastMA = input(defval = 13, title = "FastMA", minval = 1, step = 1)
slowMA = input(defval = 144, title = "SlowMA", minval = 1, step = 1)
Type = input(defval = 1, title = "Type (1 = SMA, 2 = EMA)", minval = 1, maxval = 2, step = 1)
SlowMAIsFactor = input(false)
slowMA := SlowMAIsFactor == true ? round(fastMA * slowMA) : slowMA
// === INPUT BACKTEST RANGE ===
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear = input(defval = 2018, title = "From Year", minval = 2012)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear = input(defval = 2020, title = "To Year", minval = 2012)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === MA SETUP ===
fast = Type == 1 ? sma(close, fastMA) : ema(close, fastMA)
slow = Type == 1 ? sma(close, slowMA) : ema(close, slowMA)
// === EXECUTION ===
strategy.entry("L", strategy.long, when = crossover(fast, slow) and window()) // buy long when "within window of time" AND crossover
strategy.close("L", when = crossunder(fast, slow) or time > finish) // sell long when window ends OR crossunder
plot(fast, title = 'FastMA', color = yellow, linewidth = 2, style = line) // plot FastMA
plot(slow, title = 'SlowMA', color = aqua, linewidth = 2, style = line) // plot SlowMA