Sumber daya yang dimuat... Pemuatan...

Strategi Trading Mengikuti Tren Kerangka Waktu Dual

Penulis:ChaoZhang, Tanggal: 2023-09-12 14:22:39
Tag:

Strategi Trading Mengikuti Tren Kerangka Waktu Dual

Strategi perdagangan ini mengidentifikasi arah tren di beberapa kerangka waktu untuk masuk ke tren lebih awal. Ini menggunakan MACD dan Stochastic RSI (SRSI) sebagai indikator, dan memasuki perdagangan ketika sinyal konsisten dipicu pada kerangka waktu harian dan 4 jam.

Logika Strategi:

  1. Menghitung MACD dan SRSI pada grafik harian. Ketika MACD melintasi di atas sinyal dan SRSI %K melintasi di atas sinyal, itu dianggap sinyal bullish.

  2. Menghitung MACD dan SRSI pada grafik 4 jam. Ketika MACD melintasi di atas sinyal dan SRSI %K melintasi di atas sinyal, itu dianggap sinyal bullish.

  3. Hanya pergi panjang ketika kedua sinyal bullish harian dan 4 jam muncul bersama-sama.

  4. Jika kedua sinyal bullish harian dan 4 jam menghilang, tutup posisi panjang.

  5. Jika kedua sinyal penurunan harian dan 4 jam (MACD dan penyeberangan SRSI di bawah) muncul bersama-sama, pergi pendek.

  6. Jika kedua sinyal penurunan harian dan 4 jam hilang, tutup posisi pendek.

  7. Terus memantau sinyal ganda untuk mengikuti tren.

Keuntungan dari strategi ini adalah masuk ke tren lebih awal saat mereka berkembang dengan menggunakan filter ganda untuk meningkatkan keandalan sinyal dan menghindari sinyal palsu selama periode berbelit-belit.

Namun, risiko potensial adalah bahwa tren yang kuat dapat dibangun pada satu kerangka waktu sebelum mengkonfirmasi pada yang kedua, sehingga kehilangan entri awal. Parameter seperti panjang MACD perlu dioptimalkan untuk menangkap tren lebih awal sambil meminimalkan sinyal palsu. Parameter yang terlalu sensitif dapat menyebabkan over-trading.

Secara keseluruhan, strategi Dual Timeframe Trends Following bertujuan untuk menangkap pergerakan tren pada tahap awal.


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

//@version=2
// strategy(title='[RS]Khizon (DWTI) Strategy V0', shorttitle='K', overlay=false, pyramiding=0, initial_capital=100000, currency=currency.USD)
trade_size = 10000
//  ||  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=14)
srsi_signal_smooth = input(title='SRSI Signal Smoothing:',  defval=14)
//  ||  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(0, style=circles, color=daily_trigger?blue:na, linewidth=4, transp=65)
plot(0, style=circles, color=h4_trigger?navy:na, linewidth=2, transp=0)

sel_open = daily_trigger and h4_trigger
buy_open = not daily_trigger and not h4_trigger

strategy.entry('sel', long=false,  comment='sel', when=sel_open)
strategy.entry('buy', long=true,  comment='buy', when=buy_open)


Lebih banyak