Stratégie de trading de confirmation de tendance double basée sur la moyenne mobile et le modèle de barre extérieure

EMA
Date de création: 2025-01-17 14:39:19 Dernière modification: 2025-01-17 14:39:19
Copier: 0 Nombre de clics: 302
1
Suivre
1617
Abonnés

Stratégie de trading de confirmation de tendance double basée sur la moyenne mobile et le modèle de barre extérieure

Aperçu

La stratégie est un système de suivi de tendance qui combine les moyennes mobiles avec le modèle de barre extérieure. Il utilise des moyennes mobiles exponentielles (EMA) sur 5 et 9 périodes comme indicateurs de tendance principaux, combinées au modèle de barre extérieure comme confirmation du signal. La stratégie comprend également des paramètres dynamiques de stop loss et de take profit basés sur la hauteur de la barre extérieure, ainsi qu’un mécanisme d’inversion de position après le déclenchement du stop loss.

Principe de stratégie

La logique fondamentale de la stratégie repose sur les éléments clés suivants :

  1. Utilisez le croisement des EMA à 5 et 9 périodes pour déterminer la direction de la tendance sous-jacente
  2. Confirmer la volatilité du marché grâce au modèle de barre extérieure (le prix le plus élevé de la ligne K actuelle est supérieur au prix le plus élevé de la ligne K précédente et le prix le plus bas est inférieur au prix le plus bas de la ligne K précédente)
  3. Entrez dans la transaction lorsque le signal de croisement EMA et le modèle de barre extérieure apparaissent simultanément
  4. Utilisez la hauteur de la barre extérieure pour définir de manière dynamique les niveaux de stop loss et de take profit. Le take profit est fixé à 50 % de la hauteur de la barre extérieure et le stop loss est fixé à 100 %
  5. Lorsque le stop loss est déclenché, la position inverse est automatiquement établie pour capturer d’éventuels renversements de tendance

Avantages stratégiques

  1. Le mécanisme de double confirmation améliore la précision des transactions et évite les faux signaux qui peuvent être provoqués par un seul indicateur.
  2. Les paramètres dynamiques de stop loss et de take profit s’adaptent mieux à la volatilité du marché et maintiennent une gestion raisonnable des risques dans différents environnements de marché
  3. Le mécanisme d’inversion de position peut s’adapter rapidement aux changements des tendances du marché et améliorer l’efficacité de l’utilisation du capital
  4. La stratégie a des règles d’entrée et de sortie claires et est facile à exécuter et à tester.

Risque stratégique

  1. Les modèles de barres extérieures peuvent apparaître moins fréquemment sur les marchés moins volatils, ce qui affecte la fréquence des transactions
  2. Dans un marché en évolution rapide, la position stop loss peut être trop large, augmentant le risque d’une seule transaction
  3. Le mécanisme d’inversion de position peut conduire à un stop loss continu sur des marchés volatils
  4. Les paramètres EMA fixes peuvent ne pas fonctionner de manière cohérente dans différents environnements de marché

Orientation de l’optimisation de la stratégie

  1. L’indice de volatilité peut être introduit pour ajuster dynamiquement les ratios stop loss et take profit afin de rendre la gestion des risques plus flexible.
  2. Envisagez d’ajouter un filtre de force de tendance pour éviter de trader dans des environnements de tendance faibles
  3. Optimisez les conditions de déclenchement de l’inversion de position et combinez les indicateurs de volatilité du marché pour décider d’exécuter ou non l’inversion
  4. Étudier le schéma d’optimisation des paramètres EMA pour différentes périodes de temps afin d’améliorer l’adaptabilité du système

Résumer

Il s’agit d’un système de stratégie qui combine la théorie classique de l’analyse technique avec les concepts de trading quantitatif modernes. L’utilisation coordonnée de la moyenne mobile et de la barre extérieure garantit non seulement la rapidité du suivi des tendances, mais améliore également la fiabilité des signaux. La conception du mécanisme dynamique de stop loss, de take profit et d’inversion de position reflète l’accent mis sur la gestion des risques et rend la stratégie pratique. Bien qu’il y ait encore une marge d’optimisation, le cadre global dispose déjà des conditions de base pour des opérations en temps réel.

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

//@version=5
strategy(title="Outside Bar EMA Crossover Strategy with EMA Shift", shorttitle="Outside Bar EMA Cross", overlay=true)

// Input for EMA lengths
lenEMA1 = input.int(5, title="EMA 5 Length")
lenEMA2 = input.int(9, title="EMA 9 Length")

// Input for EMA 9 shift
emaShift = input.int(1, title="EMA 9 Shift", minval=0)

// Calculate EMAs
ema1 = ta.ema(close, lenEMA1)
ema2 = ta.ema(close, lenEMA2)

// Apply shift to EMA 9
ema2Shifted = na(ema2[emaShift]) ? na : ema2[emaShift]  // Dịch chuyển EMA 9 bằng cách sử dụng offset

// Plot EMAs
plot(ema1, title="EMA 5", color=color.blue, linewidth=2)
plot(ema2Shifted, title="EMA 9 Shifted", color=color.red, linewidth=2)

// Outside Bar condition
outsideBar() => high > high[1] and low < low[1]

// Cross above EMA 5 and EMA 9 (shifted)
crossAboveEMA = close > ema1 and close > ema2Shifted

// Cross below EMA 5 and EMA 9 (shifted)
crossBelowEMA = close < ema1 and close < ema2Shifted

// Outside Bar cross above EMA 5 and EMA 9 (shifted)
outsideBarCrossAbove = outsideBar() and crossAboveEMA

// Outside Bar cross below EMA 5 and EMA 9 (shifted)
outsideBarCrossBelow = outsideBar() and crossBelowEMA

// Plot shapes for visual signals
plotshape(series=outsideBarCrossAbove, title="Outside Bar Cross Above", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy", textcolor=color.white)
plotshape(series=outsideBarCrossBelow, title="Outside Bar Cross Below", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", textcolor=color.white)

// Calculate Outside Bar height
outsideBarHeight = high - low  // Chiều cao của nến Outside Bar

// Calculate TP and SL levels
tpRatio = 0.5  // TP = 50% chiều cao nến Outside Bar
slRatio = 1.0  // SL = 100% chiều cao nến Outside Bar

tpLevelLong = close + outsideBarHeight * tpRatio  // TP cho lệnh mua
slLevelLong = close - outsideBarHeight * slRatio  // SL cho lệnh mua

tpLevelShort = close - outsideBarHeight * tpRatio  // TP cho lệnh bán
slLevelShort = close + outsideBarHeight * slRatio  // SL cho lệnh bán

// Strategy logic
if (outsideBarCrossAbove)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=slLevelLong, limit=tpLevelLong)  // Thêm TP và SL

if (outsideBarCrossBelow)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=slLevelShort, limit=tpLevelShort)  // Thêm TP và SL

// Logic: Nếu lệnh Buy bị Stop Loss => Vào lệnh Sell
if (strategy.position_size > 0 and close <= slLevelLong)
    strategy.close("Buy")
    strategy.entry("Sell After Buy SL", strategy.short)

// Logic: Nếu lệnh Sell bị Stop Loss => Vào lệnh Buy
if (strategy.position_size < 0 and close >= slLevelShort)
    strategy.close("Sell")
    strategy.entry("Buy After Sell SL", strategy.long)

// Cảnh báo khi label Buy xuất hiện
alertcondition(condition=outsideBarCrossAbove, title="Label Buy Xuất Hiện", message="Label Buy xuất hiện tại giá: {{close}}")

// Cảnh báo khi label Sell xuất hiện
alertcondition(condition=outsideBarCrossBelow, title="Label Sell Xuất Hiện", message="Label Sell xuất hiện tại giá: {{close}}")