Strategi Perdagangan Momentum Sistem Dua Jalur

Penulis:ChaoZhang, Tarikh: 2023-11-22 15:26:28
Tag:

Ringkasan

Strategi ini menggabungkan penunjuk MACD dan Stoch RSI untuk membina sistem perdagangan dua rel untuk mengesan trend dan penilaian oversold / overbought. Strategi ini juga membina penunjuk pada jangka masa harian dan 4 jam untuk membuat penilaian pelbagai jangka masa untuk mengurangkan kemungkinan penilaian yang salah.

Prinsip Strategi

Strategi ini menggabungkan penunjuk MACD dan Stoch RSI, yang merupakan jenis penunjuk teknikal yang berbeza, untuk konfigurasi.

Strategi ini mula-mula membina penunjuk MACD dan Stoch RSI pada bingkai masa harian dan 4 jam masing-masing untuk penilaian trend dan overbought / oversold. Apabila isyarat dipicu pada kedua-dua bingkai masa, operasi beli / jual yang sepadan dilakukan.

Secara khusus, penunjuk MACD dibina dengan garis DIF dan DEA membentuk salib emas / mati untuk penghakiman; penunjuk Stoch RSI dibina dengan garis K dan D membentuk salib emas / mati untuk penghakiman. Apabila kedua-dua pasangan penunjuk mempunyai salib emas, isyarat beli dihasilkan; apabila kedua-dua mempunyai salib mati, isyarat jual dihasilkan.

Oleh itu, dengan menggunakan sistem penunjuk dua dan penilaian pelbagai jangka masa secara komprehensif, strategi menilai kelajuan harga dan kekuatan relatif dengan teliti, yang membantu meningkatkan ketepatan keputusan dan mendapatkan pulangan yang lebih baik.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggabungkan sistem penunjuk dua untuk penilaian komprehensif dan ketepatan keputusan yang lebih tinggi
  2. Menggunakan jangka masa berbilang untuk mengurangkan kebarangkalian penilaian yang salah
  3. Mengambil jejak trend dan penilaian overbought / oversold untuk mempertimbangkan kedua-dua kelajuan harga dan kekuatan relatif
  4. Parameter penunjuk fleksibel yang boleh diselaraskan untuk produk dan persekitaran pasaran yang berbeza
  5. Struktur kod bersih mudah difahami dan berkembang

Analisis Risiko

Terdapat juga beberapa risiko dengan strategi ini:

  1. Terdapat risiko pasaran sistemik yang tidak dapat dielakkan sepenuhnya
  2. Tetapan parameter penunjuk yang tidak sesuai boleh membawa kepada perdagangan berlebihan atau peluang yang hilang
  3. Indikator berganda masih boleh memberikan isyarat salah serentak, tetapi kurang mungkin daripada satu
  4. Tidak dapat mengatasi perubahan pasaran yang drastik seperti peristiwa Black Swan

Tindakan balas:

  1. Mengoptimumkan parameter dan menyesuaikan keadaan perdagangan untuk mengurangkan penilaian yang salah
  2. Masukkan lebih banyak penunjuk untuk pertimbangan gabungan
  3. Tambah mekanisme stop loss untuk mengawal risiko kerugian tunggal

Arahan pengoptimuman

Strategi ini juga boleh ditingkatkan dalam aspek berikut:

  1. Memasukkan lebih banyak penunjuk untuk strategi pelbagai penunjuk
  2. Tambah algoritma pembelajaran mesin untuk pengoptimuman parameter dinamik
  3. Gabungkan penunjuk sentimen, berita dan lain-lain untuk penilaian keadaan pasaran yang lebih komprehensif
  4. Tambah stop loss, mengambil strategi keuntungan untuk mengoptimumkan pengurusan wang
  5. Berkembang ke lebih banyak produk perdagangan untuk menemui peluang yang lebih baik

Kesimpulan

Dengan aplikasi gabungan sistem penunjuk berganda dan penghakiman jangka masa berbilang, strategi ini menilai kelajuan harga dan kekuatan relatif dengan teliti, yang dapat menangkap trend pasaran dengan berkesan dan memperbaiki kekurangan penunjuk tunggal. Ia juga mempunyai kelebihan seperti penyesuaian parameter yang fleksibel, pemahaman dan pengembangan yang mudah. [trans]


/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-15 10:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title='[RS]Khizon (UWTI) Strategy V0', shorttitle='K', overlay=false, pyramiding=0, initial_capital=100000, currency=currency.USD)
//  ||  Inputs:
macd_src = input(title='MACD Source:',  defval=close)
macd_fast = input(title='MACD Fast Length:',  defval=12)
macd_slow = input(title='MACD Slow Length:',  defval=26)
macd_signal_smooth = input(title='MACD Signal Smoothing:',  defval=9)
srsi_src = input(title='SRSI Source:',  defval=close)
srsi_rsi_length = input(title='SRSI RSI Length:',  defval=14)
srsi_stoch_length = input(title='SRSI Stoch Length:',  defval=14)
srsi_smooth = input(title='SRSI Smoothing:',  defval=3)
srsi_signal_smooth = input(title='SRSI Signal Smoothing:',  defval=3)
//  ||  Strategy Inputs:
trade_size = input(title='Trade Size in USD:', type=float, defval=1)
buy_trade = input(title='Perform buy trading?', type=bool, defval=true)
sel_trade = input(title='Perform sell trading?', type=bool, defval=true)
//  ||  MACD(close, 12, 26, 9):     ||---------------------------------------------||
f_macd_trigger(_src, _fast, _slow, _signal_smooth)=>
    _macd = ema(_src, _fast) - ema(_src, _slow)
    _signal = sma(_macd, _signal_smooth)
    _return_trigger = _macd >= _signal ? true : false
//  ||  Stoch RSI(close, 14, 14, 3, 3)  ||-----------------------------------------||
f_srsi_trigger(_src, _rsi_length, _stoch_length, _smooth, _signal_smooth)=>
    _rsi = rsi(_src, _rsi_length)
    _stoch = sma(stoch(_rsi, _rsi, _rsi, _stoch_length), _smooth)
    _signal = sma(_stoch, _signal_smooth)
    _return_trigger = _stoch >= _signal ? true : false
//  ||-----------------------------------------------------------------------------||
//  ||-----------------------------------------------------------------------------||
//  ||  Check Directional Bias from daily timeframe:
daily_trigger = security('USOIL', 'D', f_macd_trigger(macd_src, macd_fast, macd_slow, macd_signal_smooth) and f_srsi_trigger(srsi_src, srsi_rsi_length, srsi_stoch_length, srsi_smooth, srsi_signal_smooth))
h4_trigger = security('USOIL', '240', f_macd_trigger(macd_src, macd_fast, macd_slow, macd_signal_smooth) and f_srsi_trigger(srsi_src, srsi_rsi_length, srsi_stoch_length, srsi_smooth, srsi_signal_smooth))

plot(title='D1T', series=daily_trigger?0:na, style=circles, color=blue, linewidth=4, transp=65)
plot(title='H4T', series=h4_trigger?0:na, style=circles, color=navy, linewidth=2, transp=0)

sel_open = sel_trade and not daily_trigger and not h4_trigger
buy_open = buy_trade and daily_trigger and h4_trigger
sel_close = not buy_trade and daily_trigger and h4_trigger
buy_close = not sel_trade and not daily_trigger and not h4_trigger
strategy.entry('sel', long=false, qty=trade_size, comment='sel', when=sel_open)
strategy.close('sel', when=sel_close)
strategy.entry('buy', long=true, qty=trade_size, comment='buy', when=buy_open)
strategy.close('buy', when=buy_close)


Lebih lanjut