Stratégie de négociation de tendance axée sur plusieurs facteurs

Auteur:ChaoZhang est là., Date: 2024-01-17 14h02 et 22h
Les étiquettes:

img

Résumé

Cette stratégie combine l'indicateur de convergence moyenne mobile (MACD) et l'indicateur de force relative stochastique (Stoch RSI) pour déterminer la direction de la tendance du marché, en allant long lorsque la tendance est à la hausse et en allant court lorsque la tendance est à la baisse.

La logique de la stratégie

Cette stratégie utilise les indicateurs MACD et Stoch RSI pour déterminer la direction de la tendance du marché.

L'indicateur MACD se compose de la ligne EMA rapide, de la ligne EMA lente et de la différence entre elles, reflétant la convergence et la divergence des moyennes mobiles à court et à long terme.

L'indicateur Stoch RSI combine les forces de l'indicateur RSI et de l'indicateur Stoch pour montrer les niveaux de surachat et de survente sur le marché.

Cette stratégie utilise le MACD et le Stoch RSI sur les délais quotidiens et de 4 heures pour déterminer la tendance du marché. Lorsque les deux indicateurs génèrent des signaux d'achat sur les graphiques quotidiens et de 4 heures, allez long. Lorsque les deux génèrent des signaux de vente, allez court. Cela peut filtrer efficacement les faux signaux et améliorer la fiabilité.

Les avantages

  1. La combinaison de deux facteurs pour juger des mouvements du marché peut filtrer efficacement les faux signaux et améliorer la précision du signal

  2. La validation des signaux à travers les délais élevés et bas (quotidiennement et 4H) évite d'être fouetté

  3. Suivre les tendances évite les marchés agités

  4. Logique de stratégie simple et claire, facile à comprendre et à exécuter

Risques et solutions

  1. L'incapacité de déterminer efficacement les points d'inversion de tendance peut entraîner le déclenchement d'un stop loss
  • Optimiser les paramètres ou ajouter d'autres indicateurs pour juger
  1. Le contrat unique ne peut pas diversifier les risques systématiques du marché
  • Augmenter d'autres contrats ou stocks pour diversifier
  1. Impossible de déterminer l'impact d'événements soudains
  • Combiner l'analyse fondamentale pour améliorer la sensibilisation aux risques

Directions d'optimisation

  1. Ajustez les paramètres MACD et Stoch RSI pour optimiser les points d'entrée et de sortie

  2. Ajoutez des stratégies d'arrêt de traînée pour verrouiller les bénéfices

  3. Ajouter la dimension de position au contrôle par risque de transaction

  4. Ajouter plus de facteurs à juger pour améliorer la précision du signal

  5. Utiliser des méthodes d'apprentissage automatique pour optimiser dynamiquement les paramètres

Résumé

Cette stratégie détermine la direction de la tendance via un modèle à double facteur et valide les signaux à travers les délais. C'est une tendance relativement stable et fiable suivant la stratégie, avec certaines capacités de gestion des risques et une marge d'erreur.


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title='[RS]Khizon (UGAZ) 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 USD:', type=float, defval=1)
buy_trade = input(title='Perform buy trading?', type=bool, defval=true)
sel_trade = input(title='Perform sell trading?', type=bool, 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 not daily_trigger and not h4_trigger
buy_open = buy_trade and daily_trigger and h4_trigger
sel_close = not buy_trade and daily_trigger and h4_trigger
buy_close = not sel_trade and not daily_trigger and not 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)


Plus de