Strategi mengikut arah aliran didorong pelbagai faktor


Tarikh penciptaan: 2024-01-17 14:02:22 Akhirnya diubah suai: 2024-01-17 14:02:22
Salin: 0 Bilangan klik: 568
1
fokus pada
1617
Pengikut

Strategi mengikut arah aliran didorong pelbagai faktor

Gambaran keseluruhan

Strategi ini menggunakan gabungan dua faktor untuk menentukan arah trend pasaran, iaitu indikator pergerakan rata-rata agregat ((MACD) dan indikator relatif kuat rawak ((Stoch RSI), melakukan lebih banyak apabila trend naik, dan melakukan kosong apabila trend turun, dan merupakan jenis strategi yang mengikuti trend.

Prinsip Strategi

Strategi ini menggunakan MACD dan Stoch RSI untuk menentukan arah trend pasaran.

Indeks MACD terdiri daripada garis cepat ((ema garis cepat) dan garis perlahan ((ema garis perlahan) dan nilai perbezaannya, yang mencerminkan keadaan penggabungan dan pemisahan purata jangka pendek dan jangka panjang. Apabila garis cepat melintasi garis perlahan, ia memberi isyarat membeli, dan apabila garis cepat melintasi garis perlahan, ia memberi isyarat menjual.

Stoch RSI menggabungkan kelebihan RSI dan Stoch untuk menunjukkan fenomena jual beli yang berlebihan di pasaran. Stoch RSI lebih besar daripada garis isyarat Stoch RSI untuk isyarat membeli, dan lebih kecil daripada garis isyarat untuk isyarat menjual.

Strategi ini menggunakan MACD dan Stoch RSI untuk menentukan arah trend pasaran pada garis hari dan garis 4 jam. Apabila kedua-dua penunjuk pada garis hari dan garis 4 jam mengeluarkan isyarat beli pada masa yang sama, buat lebih banyak; Apabila kedua-dua penunjuk mengeluarkan isyarat jual pada masa yang sama, buat kosong.

Kelebihan Strategik

  1. Gabungan dua faktor untuk menilai pergerakan pasaran, dapat menyaring isyarat palsu dengan berkesan, meningkatkan ketepatan isyarat

  2. Semak isyarat pada garisan masa yang tinggi dan rendah (garisan hari dan garisan 4 jam) untuk mengelakkan dari penarikan

  3. Mengekalkan trend dan mengelakkan pasaran yang bergolak

  4. Strategi yang jelas, mudah difahami dan dilaksanakan

Risiko dan Penyelesaian

  1. Tidak dapat menentukan titik perubahan trend dengan tepat, mungkin terbalikkan pada titik berhenti
  • Sesuai menyesuaikan parameter pengoptimuman, atau menambah penilaian penunjuk lain
  1. Kontrak tunggal tidak dapat menyebarkan risiko sistemik pasaran
  • Menambah kontrak lain atau saham untuk pelaburan yang disebarkan
  1. Tidak dapat menilai kesan daripada peristiwa besar
  • Analisis Dasar dan Peningkatan Kesedaran Mengenai Risiko

Arah pengoptimuman

  1. Menyesuaikan parameter MACD dan Stoch RSI untuk mengoptimumkan titik jual beli

  2. Tambah strategi berhenti kerugian bergerak untuk mengunci keuntungan

  3. Tambah modul pengurusan wang untuk mengawal kedudukan tunggal

  4. Menambah ketepatan isyarat dengan lebih banyak faktor penilaian

  5. Parameter pengoptimuman dinamik menggunakan kaedah pembelajaran mesin

ringkaskan

Strategi ini menggunakan model dua faktor untuk menentukan arah trend pasaran, digabungkan dengan isyarat pengesahan aksa masa yang tinggi dan rendah, merupakan strategi penjejakan trend yang lebih stabil dan boleh dipercayai. Ia mempunyai keupayaan pencegahan risiko dan ruang untuk kesalahan.

Kod sumber strategi
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title='[RS]Khizon (UGAZ) 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('NGAS', '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('NGAS', '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)