Stratégie de négociation suivant des tendances à deux délais

Auteur:ChaoZhang est là., Date: 12 septembre 2023 à 14 h 22 h 39
Les étiquettes:

Stratégie de négociation suivant des tendances à deux délais

Cette stratégie de trading identifie la direction de la tendance à travers plusieurs délais pour entrer dans les tendances tôt.

La logique de la stratégie:

  1. Calculer le MACD et le SRSI sur le graphique quotidien Lorsque le MACD dépasse le signal et que le SRSI %K dépasse le signal, il est considéré comme un signal haussier.

  2. Calculer le MACD et le SRSI sur le graphique de 4 heures. Lorsque le MACD dépasse le signal et que le SRSI %K dépasse le signal, il est considéré comme un signal haussier.

  3. Il suffit d'aller long lorsque les signaux haussiers quotidiens et de 4 heures apparaissent ensemble.

  4. Si les signaux haussiers quotidiens et de 4 heures disparaissent, fermez les positions longues.

  5. Si les signaux baissiers quotidiens et de 4 heures (crossings MACD et SRSI ci-dessous) apparaissent ensemble, passez à la vente.

  6. Si les signaux baissiers quotidiens et de 4 heures disparaissent, fermez les positions courtes.

  7. Surveillez continuellement les signaux doubles pour suivre les tendances.

L'avantage de cette stratégie est d'entrer dans les tendances dès leur développement en utilisant des doubles filtres pour améliorer la fiabilité du signal et éviter les faux signaux pendant les périodes agitées.

Cependant, un risque potentiel est que des tendances fortes puissent s'accumuler sur un laps de temps avant de se confirmer sur le second, manquant ainsi les entrées initiales.

Dans l'ensemble, la stratégie de suivi des tendances en deux temps vise à capturer les mouvements de tendance aux premiers stades.


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


Plus de