Strategi perdagangan pembalikan berdasarkan rentang rata-rata bergerak

Penulis:ChaoZhang, Tanggal: 2024-01-25 14:16:28
Tag:

img

Gambaran umum

Strategi ini disebut Moving Average Range Reversal. Ini mengidentifikasi peluang pembalikan pasar dengan menghitung crossover antara moving average dari kerangka waktu yang berbeda dan mengambil posisi panjang/pendek yang sesuai.

Logika Strategi

Strategi ini menghitung 3 rata-rata bergerak secara bersamaan:

  1. MA cepat (panjang): Mencerminkan perubahan harga terbaru
  2. Slow MA (length): Mencerminkan tren harga jangka menengah
  3. MA paling lambat (slength): Mencerminkan tren harga jangka panjang

Ketika MA cepat melintasi di atas MA lambat, itu menandakan pembalikan tren jangka pendek ke bullish.

Untuk menghindari sinyal palsu, MA ke-4 diperkenalkan sebagai filter jangka panjang (panjang). Hanya di atas filter ini sinyal panjang dianggap. Hanya di bawah filter ini sinyal pendek dianggap.

Aturan perdagangan khusus adalah:

  1. Ketika MA cepat melintasi di atas MA lambat, dan MA lambat juga melintasi di atas MA paling lambat (bullish jangka pendek), sementara harga berada di atas filter jangka panjang, pergi panjang.

  2. Ketika MA cepat melintasi di bawah MA lambat, dan MA lambat juga melintasi di bawah MA paling lambat (bearish jangka pendek), sementara harga berada di bawah filter jangka panjang, pergi pendek.

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Menggunakan beberapa kerangka waktu untuk mengidentifikasi perubahan tren dengan lebih tepat dan mengurangi sinyal palsu.
  2. Filter jangka panjang menghindari perdagangan yang salah posisi sebelum pembalikan tren besar.
  3. Aturan sederhana dan jelas, mudah dimengerti dan otomatis.
  4. Strategi pembalikan mendapat manfaat dari bias positif dalam pengembalian dan keuntungan.
  5. Hasil backtest yang baik dalam simulasi perdagangan langsung mengenai pengembalian dan faktor keuntungan.

Analisis Risiko

Risiko dari strategi ini meliputi:

  1. Strategi MA sensitif terhadap parameter.
  2. Pemberontakan palsu dari sinyal pembalikan dapat menyebabkan kerugian.
  3. Pergeseran samping yang berkepanjangan dapat membatalkan keuntungan dari pembalikan berulang.
  4. Harga dapat berbalik dan mempercepat dengan kekuatan, gagal stop loss tepat waktu.

Solusi:

  1. Optimalkan parameter untuk menemukan kombinasi terbaik.
  2. Meningkatkan waktu konfirmasi sinyal untuk menghindari sinyal palsu.
  3. Perluas stop loss range untuk mengontrol jumlah kerugian.

Arahan Optimasi

Strategi ini dapat ditingkatkan dalam hal berikut:

  1. Uji lebih banyak set parameter untuk menemukan nilai optimal.
  2. Tambahkan filter volume untuk menghindari sinyal palsu dalam kondisi volume rendah.
  3. Masukkan indikator lain untuk mengkonfirmasi sinyal masuk.
  4. Mengimplementasikan penyesuaian stop loss yang dinamis untuk kontrol keluar yang lebih baik.
  5. Mengoptimalkan manajemen risiko untuk kontrol risiko yang lebih ketat.

Kesimpulan

Strategi ini memperdagangkan pembalikan pasar yang diidentifikasi oleh penyeberangan MA, dengan panduan arah dari filter jangka panjang. Ini secara efektif menangkap peluang pada titik balik. Hasil backtest positif menunjukkan profitabilitas yang baik untuk aplikasi langsung. Optimasi lebih lanjut pada parameter, penyaringan sinyal, stop loss dll dapat membuat strategi lebih kuat untuk penggunaan praktis.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

strategy("Moving Average Trap", overlay=true)

flenght = input.int(title="Fast MA Period", minval=1, maxval=2000, defval=3)
llenght = input.int(title="Slower MA Period", minval=1, maxval=2000, defval=5)
sslenght = input.int(title="Slowest MA Period", minval=1, maxval=2000, defval=8)
tlenght = input.int(title="Trend Filter MA Period", minval=1, maxval=2000, defval=200)

ssma = ta.sma(close, sslenght)
fma = ta.sma(close, flenght)
sma = ta.sma(close, llenght)
tma = ta.sma(close, tlenght)

plot(fma, color=color.red)
plot(sma, color=color.white)
plot(ssma, color=color.green)
plot(tma, color=color.maroon, linewidth=2)

short =  (fma > sma and sma > ssma) and close < tma
long = (fma < sma and sma < ssma) and close > tma
closeshort = fma < sma and sma < ssma
closelong = fma > sma and sma > ssma

if long
	strategy.entry("long", strategy.long)
if closelong
	strategy.close("long")
if short
	strategy.entry("short", strategy.short)
if closeshort
	strategy.close("short")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

Lebih banyak