Estratégia de combinação multiperíodo MACD StochRSI


Data de criação: 2023-09-13 12:05:46 última modificação: 2023-09-13 12:05:46
cópia: 0 Cliques: 636
1
focar em
1617
Seguidores

Esta estratégia combina o uso do MACD com o StochRSI para julgar em vários períodos de tempo, aumentando a estabilidade e a confiabilidade das decisões de negociação. É uma estratégia típica de combinação de vários eixos temporais.

Princípios da estratégia:

  1. Os indicadores MACD e StochRSI são calculados em dia e em períodos de 4 horas.

  2. Quando a linha do dia e o indicador de múltiplos pontos do ciclo de 4 horas aparecem simultaneamente como múltiplos sinais, faça várias operações.

  3. Quando a linha do dia e o indicador de cabeceira vazia de 4 horas aparecem simultaneamente, faça a operação de vazio.

  4. Depois de entrar em uma direção, você pode esperar que os indicadores da outra direção apareçam para se livrar da posição.

  5. Com a combinação de vários eixos temporais, os resultados dos indicadores são verificados e as transações erradas são reduzidas.

Os benefícios da estratégia:

  1. A combinação de vários períodos de tempo pode melhorar a estabilidade do sinal.

  2. O MACD e o StochRSI são mutuamente verificáveis, o que aumenta a precisão.

  3. Regras de entrada e saída claras, facilitando o retorno e o jogo.

Os riscos desta estratégia:

  1. A combinação de vários eixos tem um problema de atraso.

  2. A otimização dos parâmetros do indicador é mais complexa e requer a consideração de vários ciclos ao mesmo tempo.

  3. A frequência de negociação pode ser baixa, o que pode impedir a captação de oportunidades de mercado.

Em resumo, a estratégia pode melhorar a qualidade do sinal em certa medida, julgando por meio de uma combinação de indicadores de vários períodos, mas com atenção à otimização de parâmetros e problemas de atraso, buscando um equilíbrio entre retorno e risco.

Código-fonte da estratégia
/*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)