Stratégie de trading quantitatif basée sur l'oscillateur de momentum amélioré et la divergence stochastique

AC RSI SMA STOCH TP SL AO DIV
Date de création: 2024-12-11 17:34:01 Dernière modification: 2024-12-11 17:34:01
Copier: 1 Nombre de clics: 360
1
Suivre
1617
Abonnés

Stratégie de trading quantitatif basée sur l’oscillateur de momentum amélioré et la divergence stochastique

Aperçu

La stratégie est un système de trading quantitatif qui combine un indicateur d’oscillation accélérée (AC) et un indicateur aléatoire (Stochastic). Il capte les changements de dynamique du marché en identifiant les écarts entre les prix et les indicateurs techniques, prédisant ainsi un potentiel renversement de tendance. La stratégie intègre également une ligne horizontale (SMA) et un indicateur relativement faible (RSI) pour augmenter la fiabilité du signal et définit des stop-loss fixes pour contrôler les risques.

Principe de stratégie

La logique de base de la stratégie est basée sur la synergie de plusieurs indicateurs techniques. On calcule d’abord l’indicateur d’oscillation accélérée ((AC), qui est obtenu par la différence entre les moyennes de 5 et 34 cycles de la valeur moyenne des prix, puis en soustrayant la moyenne de ses N cycles. On calcule également les valeurs K et D des indicateurs aléatoires pour confirmer le signal de décalage.

Avantages stratégiques

  1. Synergie multi-indicateurs: une combinaison de trois indicateurs AC, Stochastic et RSI, permettant de filtrer efficacement les faux signaux
  2. Contrôle automatique des risques: paramètres d’arrêt et de perte avec un nombre de points fixe, permettant de contrôler efficacement le risque de chaque transaction
  3. Astuces visuelles: marquez clairement les signaux d’achat et de vente sur le graphique pour aider les traders à identifier rapidement les opportunités
  4. Flexibilité: les paramètres peuvent être ajustés pour s’adapter à différents environnements de marché et cycles de négociation
  5. Alerte en temps réel: un système d’alerte en temps réel intégré pour vous assurer de ne pas rater une opportunité de transaction

Risque stratégique

  1. Risque de fausse percée: Faux signaux de déviation dans un marché en crise
  2. Risque de points de glissement: les points de glissement peuvent être plus importants en cas de fortes fluctuations du marché en raison de l’utilisation d’un nombre fixe de points de stop-loss
  3. Sensibilité des paramètres : différentes combinaisons de paramètres peuvent entraîner de grandes différences dans les performances de la stratégie
  4. La dépendance aux conditions du marché: les stratégies peuvent être moins efficaces dans les marchés où la tendance n’est pas évidente
  5. Lagueur du signal: il peut y avoir un certain retard du signal en raison de l’utilisation du calcul linéaire

Orientation de l’optimisation de la stratégie

  1. Stop loss dynamique: le point de stop loss peut être ajusté dynamiquement en fonction de la volatilité du marché
  2. Introduction d’indicateurs de débit: amélioration de la fiabilité du signal par la confirmation du débit
  3. Filtrage des conditions de marché: ajout d’un module de jugement de tendance et utilisation de différentes stratégies de négociation dans différentes conditions de marché
  4. Sélection de paramètres d’optimisation: optimiser les combinaisons de paramètres de chaque indicateur à l’aide de méthodes d’apprentissage automatique
  5. Augmentation du filtrage temporel: prendre en compte les caractéristiques horaires du marché et éviter de négocier à des moments défavorables

Résumer

Il s’agit d’une stratégie de trading quantitatif qui combine plusieurs indicateurs techniques pour capturer les points de retournement du marché en s’éloignant des signaux. L’avantage de la stratégie réside dans la vérification croisée de plusieurs indicateurs et un système de contrôle des risques bien développé, mais il faut également faire attention aux problèmes tels que les faux-bouts et l’optimisation des paramètres.

Code source de la stratégie
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © JayQwae


//@version=5
strategy("Enhanced AC Divergence Strategy with Stochastic Divergence", overlay=true)

// Input settings
tp_pips = input.float(0.0020, "Take Profit (in price)", step=0.0001)
sl_pips = input.float(0.0040, "Stop Loss (in price)", step=0.0001)  // 40 pips
ac_length = input.int(5, "AC Length")
rsi_length = input.int(14, "RSI Length")
stoch_k = input.int(14, "Stochastic K Length")
stoch_d = input.int(3, "Stochastic D Smoothing")
stoch_ob = input.float(80, "Stochastic Overbought Level")
stoch_os = input.float(20, "Stochastic Oversold Level")

// Accelerator Oscillator Calculation
high_low_mid = (high + low) / 2
ao = ta.sma(high_low_mid, 5) - ta.sma(high_low_mid, 34)
ac = ao - ta.sma(ao, ac_length)

// RSI Calculation
rsi = ta.rsi(close, rsi_length)

// Stochastic Oscillator Calculation
k = ta.sma(ta.stoch(close, high, low, stoch_k), stoch_d)
d = ta.sma(k, stoch_d)

// Stochastic Divergence Detection
stoch_bull_div = ta.lowest(close, 5) < ta.lowest(close[1], 5) and ta.lowest(k, 5) > ta.lowest(k[1], 5)
stoch_bear_div = ta.highest(close, 5) > ta.highest(close[1], 5) and ta.highest(k, 5) < ta.highest(k[1], 5)

// Main Divergence Detection
bullish_div = ta.lowest(close, 5) < ta.lowest(close[1], 5) and ac > ac[1] and stoch_bull_div
bearish_div = ta.highest(close, 5) > ta.highest(close[1], 5) and ac < ac[1] and stoch_bear_div

// Plot divergences
plotshape(bullish_div, title="Bullish Divergence", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(bearish_div, title="Bearish Divergence", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Strategy rules
if (bullish_div)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", limit=close + tp_pips, stop=close - sl_pips)

if (bearish_div)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", limit=close - tp_pips, stop=close + sl_pips)

// Alerts
if (bullish_div)
    alert("Bullish Divergence detected! Potential Buy Opportunity", alert.freq_once_per_bar)

if (bearish_div)
    alert("Bearish Divergence detected! Potential Sell Opportunity", alert.freq_once_per_bar)