Estratégia de negociação na sequência de tendências de dois prazos

Autora:ChaoZhang, Data: 2023-09-12 14:22:39
Tags:

Estratégia de negociação na sequência de tendências de dois prazos

Esta estratégia de negociação identifica a direção da tendência em vários prazos para entrar nas tendências cedo.

Estratégia lógica:

  1. Calcule o MACD e o SRSI no gráfico diário. Quando o MACD cruza acima do sinal e o SRSI %K cruza acima do sinal, é considerado um sinal de alta.

  2. Quando o MACD cruza acima do sinal e o SRSI %K cruza acima do sinal, é considerado um sinal de alta.

  3. Apenas vá longo quando ambos os sinais de alta diários e de 4 horas aparecem juntos.

  4. Se os sinais de alta diários e de 4 horas desaparecerem, feche as posições longas.

  5. Se ambos os sinais de baixa diária e de 4 horas (cruzamento do MACD e do SRSI abaixo) aparecerem juntos, vá para curto.

  6. Se desaparecerem os sinais de baixa diários e de 4 horas, feche as posições curtas.

  7. Monitorizar continuamente os sinais duplos para seguir as tendências.

A vantagem desta estratégia é entrar em tendências no início de seu desenvolvimento, usando filtros duplos para melhorar a confiabilidade do sinal e evitar falsos sinais durante períodos agitados.

No entanto, um risco potencial é que tendências fortes possam se construir em um período de tempo antes de confirmarem no segundo, perdendo assim entradas iniciais. Parâmetros como comprimentos do MACD precisam ser otimizados para capturar tendências cedo, minimizando sinais falsos. Parâmetros excessivamente sensíveis podem causar excesso de negociação.

Em geral, a estratégia de seguimento de tendências de duplo prazo visa capturar os movimentos da tendência nos estágios iniciais. A confirmação dupla ajuda a evitar problemas, mas pode ocasionalmente perder as entradas iniciais. É necessário ajuste cuidadoso dos parâmetros e gerenciamento de risco.


/*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)


Mais.