Strategi kombinasi MACD StochRSI multi-periode


Tanggal Pembuatan: 2023-09-13 12:05:46 Akhirnya memodifikasi: 2023-09-13 12:05:46
menyalin: 0 Jumlah klik: 636
1
fokus pada
1617
Pengikut

Strategi ini menggabungkan penggunaan indikator MACD dan indikator StochRSI untuk menilai dalam beberapa periode waktu, meningkatkan stabilitas dan keandalan keputusan perdagangan. Ini adalah strategi kombinasi multi-aksara waktu yang khas.

Prinsip-prinsip Strategi:

  1. MACD dan StochRSI dihitung pada garis harian dan siklus 4 jam.

  2. Bila garis hari dan indikator multihead dari siklus 4 jam muncul pada saat yang sama sebagai sinyal ganda, lakukan operasi ganda.

  3. Saat garis hari dan indikator kepala kosong dalam siklus 4 jam muncul pada saat yang sama, lakukan operasi kosong.

  4. Setelah masuk ke satu arah, menunggu indikator arah lain muncul untuk melonggarkan posisi.

  5. Mengurangi kesalahan transaksi dengan melakukan verifikasi hasil indikator melalui kombinasi multi-axis.

Keuntungan dari strategi ini:

  1. Penghakiman kombinasi multi-segmen dapat meningkatkan stabilitas sinyal.

  2. MACD dan StochRSI dapat saling diverifikasi untuk meningkatkan akurasi.

  3. Aturan masuk dan keluar yang jelas, mudah untuk dihitung dan dihitung.

Bahaya dari strategi ini:

  1. Ada masalah keterlambatan dalam penilaian kombinasi multi-aksara.

  2. Optimasi parameter indikator lebih rumit, perlu mempertimbangkan beberapa siklus sekaligus.

  3. Frekuensi perdagangan mungkin rendah, sehingga peluang pasar tidak dapat sepenuhnya ditangkap.

Kesimpulannya, strategi ini dapat meningkatkan kualitas sinyal, tetapi perlu memperhatikan optimasi parameter dan masalah keterlambatan, mencari keseimbangan antara keuntungan dan risiko.

Kode Sumber Strategi
/*backtest
start: 2023-08-13 00:00:00
end: 2023-09-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// strategy(title='[RS]Khizon (DGAZ) 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 BTC:',  defval=1)
buy_trade = input(title='Perform buy trading?',  defval=true)
sel_trade = input(title='Perform sell trading?',  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 daily_trigger and h4_trigger
buy_open = buy_trade and not daily_trigger and not h4_trigger
sel_close = not buy_trade and not daily_trigger and not h4_trigger
buy_close = not sel_trade and daily_trigger and 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)