Strategi menangkap momentum berdasarkan rata-rata bergerak

Penulis:ChaoZhang, Tanggal: 2023-11-01 15:55:51
Tag:

img

Gambaran umum

Strategi ini menggunakan moving average sebagai sinyal perdagangan utama, dikombinasikan dengan Heikin-Ashi untuk mendeteksi pembalikan tren, bertujuan untuk menangkap momentum harga jangka pendek.

Logika Strategi

  1. Hitung harga penutupan Heikin-Ashi nAMAn sebagai garis dasar harga.

  2. Hitung rata-rata bergerak cepat fma dan rata-rata bergerak lambat sma berdasarkan nAMAn.

  3. Menghasilkan sinyal beli ketika FMA melintasi SMA, dan sinyal jual ketika FMA melintasi SMA.

  4. Pencelupan ulang dihapus dalam strategi ini untuk menghasilkan sinyal perdagangan real-time dan menghindari bias backtesting.

Analisis Keuntungan

  1. Heikin-Ashi membantu menentukan titik pembalikan tren dengan lebih akurat.

  2. MA crossover menyaring sinyal palsu secara efektif.

  3. Tidak ada keterlambatan dalam generasi sinyal memastikan kinerja langsung yang dapat diandalkan.

  4. Fleksibel pengaturan parameter dapat disesuaikan untuk produk yang berbeda.

  5. Logika yang sederhana dan jelas, mudah dipahami dan diterapkan.

  6. Dapat sepenuhnya otomatis untuk meminimalkan risiko perdagangan manual.

Analisis Risiko

  1. Kinerja yang buruk di pasar range-bound dengan harga whipsaws.

  2. Cenderung menghasilkan sinyal palsu dengan crossover MA ganda.

  3. Parameter MA yang tidak tepat dapat menyebabkan hilangnya tren atau meningkatnya penarikan.

  4. Biaya perdagangan mempengaruhi laba bersih dalam perdagangan langsung.

  5. Stop loss yang ketat diperlukan untuk mengendalikan kerugian perdagangan tunggal.

  6. Strategi perdagangan mekanis memiliki risiko penarikan yang melekat dan membutuhkan manajemen modal yang tepat.

Solusi Manajemen Risiko:

  1. Tambahkan filter volatilitas untuk menghindari pasar yang terikat rentang.

  2. Tambahkan filter untuk memastikan kualitas sinyal.

  3. Mengoptimalkan parameter MA melalui pengujian menyeluruh.

  4. Sesuaikan frekuensi perdagangan untuk mengurangi dampak biaya.

  5. Atur stop loss yang tepat untuk mengendalikan kerugian dalam perdagangan tunggal.

  6. Mengoptimalkan manajemen modal untuk mengontrol ukuran posisi.

Arah Peningkatan

  1. Mengoptimalkan parameter MA untuk meningkatkan kualitas sinyal.

  2. Tambahkan filter tren untuk menghindari pasar whipsaw.

  3. Sertakan indikator volume untuk mengkonfirmasi tren.

  4. Mengimplementasikan stop loss dan profit taking yang dinamis untuk mengoptimalkan profit capture.

  5. Mengintegrasikan modul manajemen modal untuk mengontrol ukuran posisi.

  6. Tambahkan modul perdagangan algoritmik untuk otomatisasi penuh.

Ringkasan

Strategi ini mengintegrasikan teknik crossover Heikin-Ashi dan MA untuk menciptakan strategi tren jangka pendek yang sederhana dan praktis. Ini menghasilkan sinyal perdagangan real-time yang dapat diandalkan dan menunjukkan kinerja yang baik dalam perdagangan langsung. Optimasi lebih lanjut pada parameter, manajemen risiko, dan modul perdagangan algoritmik dapat mengubahnya menjadi strategi otomatis sepenuhnya yang dapat dipercaya.


/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Heikin/Kaufman by Gustavo v5
// strategy('Heikin Ashi EMA v5 no repaint ', shorttitle='Heikin Ashi EMA v5 no repaint', overlay=true, max_bars_back=500, default_qty_value=1000, initial_capital=100000, currency=currency.EUR)


// Settings - H/K
res1 = input.timeframe(title='Heikin Ashi EMA Time Frame', defval='D')
test = input(0, 'Heikin Ashi EMA Shift')
sloma = input(20, 'Slow EMA Period')
nAMA = hlc3

//Kaufman MA
Length = input.int(5, minval=1)
xPrice = input(hlc3)
xvnoise = math.abs(xPrice - xPrice[1])
Fastend = input.float(2.5, step=.5)
Slowend = input(20)
nfastend = 2 / (Fastend + 1)
nslowend = 2 / (Slowend + 1)
nsignal = math.abs(xPrice - xPrice[Length])
nnoise = math.sum(xvnoise, Length)
nefratio = nnoise != 0 ? nsignal / nnoise : 0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMAn = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))

//Heikin Ashi Open/Close Price
ha_t = ticker.heikinashi(syminfo.tickerid)
ha_close = request.security(ha_t, timeframe.period, nAMAn)
mha_close = request.security(ha_t, res1, hlc3)

//Moving Average
fma = ta.ema(mha_close[test], 1)
sma = ta.ema(ha_close, sloma)
plot(fma, title='MA', color=color.new(color.black, 0), linewidth=2, style=plot.style_line)
plot(sma, title='SMA', color=color.new(color.red, 0), linewidth=2, style=plot.style_line)

//Strategy
golong = ta.crossover(fma, sma)
goshort = ta.crossunder(fma, sma)

strategy.entry('Buy', strategy.long, when=golong)
strategy.entry('Sell', strategy.short,when=goshort)



Lebih banyak