この戦略は,MACD指標とStochRSI指標を組み合わせて,複数のタイムサイクルで判断し,取引決定の安定性と信頼性を向上させます.これは典型的な複数のタイム軸の組み合わせ戦略です.
戦略の原則:
MACDとStochRSIの指標は日線と4時間周期で計算する.
日線と4時間周期の多頭指針が同時に多信号に現れたとき,多操作を行う.
当日線と4時間周期空頭指針が空白信号を同時に出たとき,空白操作を行う.
一方向の入場後,もう一方向の指標が現れるのを待って平定することができる.
複数の時間軸を組み合わせて指標結果を検証し,誤った取引を減らす.
この戦略の利点は
複数の時間帯の組み合わせ判断により,信号の安定性が向上する.
MACDとStochRSIは相互検証が可能で,精度が向上する.
明確な入場・出場規則で,反測や実況を容易にします.
この戦略のリスクは
複数の時間軸の組み合わせを判断する際の遅滞の問題
指数パラメータの最適化は複雑で,複数の周期を同時に考慮する必要がある.
取引の頻度が低いため,市場機会を十分に捉えることができない可能性があります.
要するに,この戦略は,複数の周期指標の組み合わせによって判断され,信号の質を一定程度向上させることができるが,パラメータ最適化と遅れの問題に注意し,報酬とリスクのバランスを求めなければならない.
/*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)