Strategi ini menghasilkan sinyal perdagangan dengan menghitung dua rata-rata bergerak dari periode yang berbeda dan memetakan titik persilangan mereka.
Strategi ini didasarkan pada keuntungan dari rata-rata bergerak - mereka menghilangkan keacakan dalam urutan harga dan mengekstrak tren utama.
Ketika rata-rata bergerak jangka pendek melintasi di atas rata-rata bergerak jangka panjang, itu menandakan bahwa harga memasuki tren naik. Ketika melintasi di bawah, itu menandakan harga memasuki tren turun. Menurut logika ini, kita pergi panjang atau pendek masing-masing.
Secara khusus, strategi ini menghitung rata-rata bergerak sederhana 7 hari (SMA) dan rata-rata bergerak sederhana 20 hari. Ketika dua rata-rata bersilang, ia menilai pembalikan tren dan memicu sinyal perdagangan. Untuk membedakan antara jenis crossover, kita mendefinisikan garis jangka pendek berada di atas garis jangka panjang sebagai tren harga naik, dan sebaliknya untuk tren menurun. Ketika garis jangka pendek melintasi di atas garis jangka panjang, yaitu awal tren naik, posisi panjang dimasukkan. Ketika garis jangka pendek melintasi di bawah, yaitu awal tren turun, posisi pendek dimasukkan.
(1) Logika strategi sederhana dan mudah dimengerti dan diterapkan.
(2) Rata-rata bergerak sebagai indikator pelacakan tren dapat secara efektif menyaring beberapa kebisingan dalam harga.
(3) Konfigurasi parameter yang fleksibel untuk memenuhi kondisi pasar dan persyaratan perdagangan yang berbeda.
(4) Penggunaan dua periode rata-rata bergerak yang umum digunakan memudahkan untuk menentukan sinyal perdagangan yang jelas.
(5) Visualisasi yang kuat untuk tren intuitif, identifikasi tingkat kunci dll.
(6) Parameter dapat dioptimalkan melalui backtesting untuk meningkatkan return strategi.
(1) Strategi ini sangat sensitif terhadap fluktuasi pasar.
(2) Crossover mungkin tidak secara akurat menentukan tingkat pembalikan tren dan dapat memicu sinyal yang salah.
(3) Aturan yang kaku tidak dapat beradaptasi dengan peristiwa drastis yang mempengaruhi pasar, yang berpotensi menyebabkan kerugian besar.
(4) Parameter yang tidak tepat juga dapat menyebabkan sinyal yang tidak akurat dan perdagangan yang terlewatkan.
Untuk mengurangi risiko ini, parameter dapat disesuaikan sesuai. Indikator lain dapat ditambahkan untuk konfirmasi. Strategi stop loss dapat mengendalikan kerugian. Parameter atau strategi dapat disesuaikan sesuai dengan rezim pasar.
(1) Menggabungkan indikator teknis lain untuk membentuk strategi gabungan dapat meningkatkan akurasi sinyal.
(2) Menambahkan strategi stop loss untuk mengontrol kerugian perdagangan tunggal secara efektif.
(3) Pengujian dan pengoptimalan periode rata-rata bergerak. Mencoba kombinasi cepat dan lambat yang berbeda untuk menemukan parameter terbaik. Rata-rata bergerak lainnya seperti EMA, WMA juga dapat diuji.
(4) Penyesuaian parameter berdasarkan produk dan kondisi pasar yang berbeda.
Strategi crossover rata-rata bergerak adalah strategi yang sangat tipikal dan dasar mengikuti tren. Dengan menghitung dua rata-rata bergerak dari periode yang berbeda dan mengamati crossover mereka, ia menilai perubahan tren harga. Sinyal perdagangan dihasilkan ketika rata-rata bergerak periode yang lebih pendek melintasi di atas atau di bawah yang lebih lama. Logika sederhana ini mudah diterapkan dan fleksibel disesuaikan, menjadikannya strategi kuantitatif pengantar.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Ma stratégie", overlay=true) // Multi-timeframe and price input pricetype = input(close, title="Price Source For The Moving Averages") useCurrentRes = input(true, title="Use Current Timeframe As Resolution?") resCustom = input(title="Use Different Timeframe? Then Uncheck The Box Above", defval="W") res = useCurrentRes ? timeframe.period : resCustom price = request.security(syminfo.tickerid, res, pricetype) // MA period input shortperiod = input(7, title="Short Period Moving Average") longperiod = input(20, title="Long Period Moving Average") short = ema(price, shortperiod) long = ema(price, longperiod) // MA trend direction color shortcolor = short > short[1] ? lime : short < short[1] ? red : blue longcolor = long > long[1] ? lime : long < long[1] ? red : blue // MA output MA1 = plot(short, title="Short Period Moving Average", style=linebr, linewidth=2, color=shortcolor) MA2 = plot(long, title="Long Period Moving Average", style=linebr, linewidth=4, color=longcolor) fill(MA1, MA2, color=silver, transp=50) // MA trend bar color TrendingUp() => short > long TrendingDown() => short < long barcolor(TrendingUp() ? green : TrendingDown() ? red : blue) // MA cross alert MAcrossing = cross(short, long) ? short : na plot(MAcrossing, style = cross, linewidth = 4,color=black) // MA cross background color alert Uptrend() => TrendingUp() and TrendingDown()[1] Downtrend() => TrendingDown() and TrendingUp()[1] bgcolor(Uptrend() ? green : Downtrend() ? red : na,transp=50) // Buy and sell alert Buy = Uptrend() and close > close[1] Sell = Downtrend() and close < close[1] plotshape(Buy, color=black, style=shape.arrowup, text="Buy", location=location.bottom) plotshape(Sell, color=black, style=shape.arrowdown, text="Sell", location=location.top) if (Buy) strategy.entry("My Long Entry Id", strategy.long) if (Sell) strategy.entry("My Short Entry Id", strategy.short)