Système de trading automatique avec stratégie d'alignement parfait des moyennes mobiles EMA, SMA, CCI, ATR et indicateur Trend Magic

EMA SMA CCI ATR
Date de création: 2024-09-26 15:52:31 Dernière modification: 2024-09-26 15:52:31
Copier: 0 Nombre de clics: 675
1
Suivre
1617
Abonnés

Système de trading automatique avec stratégie d’alignement parfait des moyennes mobiles EMA, SMA, CCI, ATR et indicateur Trend Magic

Aperçu

Cette stratégie utilise trois moyennes mobiles (EMA45, SMA90 et SMA180) et un indicateur de magie de tendance basé sur les calculs CCI et ATR. Le cœur de la stratégie est d’identifier le parfait alignement de la ligne de parité, tout en combinant les changements de couleur de l’indicateur de magie de tendance pour confirmer le renversement de tendance, ce qui produit un signal de négociation.

Principe de stratégie

La stratégie fonctionne selon les éléments clés suivants:

  1. L’alignement parfait de la ligne moyenne: trois lignes moyennes utilisant les EMA45, SMA90 et SMA180, lorsqu’elles sont alignées dans un ordre particulier (multi-tête: EMA45 > SMA90 > SMA180; tête vide: EMA45 < SMA90 < SMA180), sont considérées comme un signal fort pour établir une tendance.

  2. L’indicateur de magie de tendance: il s’agit d’un indicateur personnalisé basé sur le CCI (indice des canaux de marchandises) et l’ATR (amplitude réelle). Il indique un potentiel renversement de tendance par une variation de couleur.

  3. Conditions d’entrée: Un signal de transaction n’est généré que lorsque l’alignement parfait de la moyenne et le changement de couleur de l’indicateur magique de tendance sont satisfaits simultanément. Cela garantit que les transactions ne sont effectuées que lorsque des tendances fortes se forment.

  4. Gestion des risques: la stratégie utilise des objectifs de stop-loss et de profit basés sur le rapport de retour au risque. Le stop-loss est fixé au niveau SMA90 au moment de l’entrée et l’objectif de profit est fixé à 1,5 fois le risque.

Avantages stratégiques

  1. Le suivi des tendances: grâce à la combinaison de plusieurs indicateurs, la stratégie permet de capturer efficacement les tendances à moyen et long terme et de réduire les faux signaux.

  2. Contrôle des risques: les mécanismes de gestion des risques intégrés, y compris les objectifs de gain et de stop-loss fixes et basés sur le rapport de retour sur risque, aident à contrôler les risques de chaque transaction.

  3. Flexibilité: la stratégie permet aux utilisateurs d’ajuster les paramètres tels que les cycles CCI, les multiples ATR et les cycles des moyennes mobiles pour s’adapter aux différentes conditions du marché et aux préférences personnelles.

  4. Visualisation: La stratégie utilise des indicateurs magiques de tendance et des moyennes mobiles sur des graphiques pour permettre aux traders d’analyser intuitivement les tendances du marché.

Risque stratégique

  1. Le retard: En raison de l’utilisation de moyennes mobiles et d’autres indicateurs de retard, la stratégie peut manquer certaines opportunités au début de la tendance.

  2. Marchés en tremblement de terre: Dans les marchés en cours ou en tremblement de terre, les stratégies peuvent produire de fréquents faux signaux, entraînant une survente des transactions.

  3. Arrêt fixe: l’utilisation d’un SMA90 fixe comme arrêt peut être trop indulgente dans certains cas, augmentant les pertes potentielles.

  4. Sensibilité aux paramètres: la performance d’une stratégie peut être sensible aux paramètres, ce qui nécessite une optimisation et une rétro-évaluation minutieuses.

Orientation de l’optimisation de la stratégie

  1. Stop loss dynamique: envisagez de suivre le stop loss et d’ajuster le niveau de stop loss au fur et à mesure que le prix évolue pour mieux protéger les bénéfices.

  2. Filtrage de l’état du marché: introduire des filtres de volatilité ou d’intensité de tendance pour ajuster le comportement stratégique dans différentes conditions de marché.

  3. Analyse des périodes: intégration d’analyse des périodes multiples pour améliorer la fiabilité du signal et réduire les faux signaux.

  4. Indicateurs quantitatifs: ajout d’analyses de la quantité de transactions ou d’autres indicateurs quantitatifs pour renforcer la confirmation et la reconnaissance des tendances.

  5. Optimisation de l’apprentissage automatique: utilisation d’algorithmes d’apprentissage automatique pour ajuster dynamiquement les paramètres afin de s’adapter aux conditions changeantes du marché.

Résumer

Cette stratégie de trading automatique, qui combine un alignement parfait de la ligne uniforme et des indicateurs magiques de tendance, montre une méthode de suivi de tendance potentielle. En utilisant l’intégration de plusieurs indicateurs techniques, la stratégie vise à capturer les tendances fortes du marché, tout en contrôlant les risques grâce à un mécanisme de gestion des risques intégré. Malgré certaines limitations inhérentes, telles que le retard et la sensibilité aux paramètres, cette stratégie est susceptible de devenir un outil de trading efficace grâce à une optimisation continue et à un ajustement adaptatif.

Code source de la stratégie
/*backtest
start: 2024-08-26 00:00:00
end: 2024-09-24 08:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PakunFX

//@version=5
strategy("Trend Magic with EMA, SMA, and Auto-Trading", shorttitle="TM_Trading", overlay=true, format=format.price, precision=2)

// Inputs
period = input.int(21, "CCI period")
coeff = input.float(1.0, "ATR Multiplier")
AP = input.int(7, "ATR Period")
riskRewardRatio = input.float(1.5, "Risk/Reward Ratio")  // Risk/Reward Ratio for take profit

// Calculations
ATR = ta.sma(ta.tr, AP)
src = input(close)
upT = low - ATR * coeff
downT = high + ATR * coeff
var MagicTrend = 0.0
MagicTrend := ta.cci(src, period) >= 0 ? (upT < nz(MagicTrend[1]) ? nz(MagicTrend[1]) : upT) : (downT > nz(MagicTrend[1]) ? nz(MagicTrend[1]) : downT)

// Define colors for Trend Magic
color1 = ta.cci(src, period) >= 0 ? color.rgb(0, 34, 252) : color.rgb(252, 4, 0)
isBlue = ta.cci(src, period) >= 0
isRed = ta.cci(src, period) < 0

// Convert bool to float (1 for true, 0 for false)
isBlueFloat = isBlue ? 1 : 0
isRedFloat = isRed ? 1 : 0

// Moving Averages
ema45 = ta.ema(close, 45)
sma90 = ta.sma(close, 90)
sma180 = ta.sma(close, 180)

// Plot Trend Magic
plot(MagicTrend, color=color1, linewidth=3)

// Alerts
alertcondition(ta.cross(close, MagicTrend), title="Cross Alert", message="Price - MagicTrend Crossing!")
alertcondition(ta.crossover(low, MagicTrend), title="CrossOver Alarm", message="BUY SIGNAL!")
alertcondition(ta.crossunder(high, MagicTrend), title="CrossUnder Alarm", message="SELL SIGNAL!")

// Perfect Order conditions
bullishPerfectOrder = ema45 > sma90 and sma90 > sma180  // Bullish Perfect Order
bearishPerfectOrder = ema45 < sma90 and sma90 < sma180  // Bearish Perfect Order

// Trend Magic color change detection
trendMagicTurnedBlue = ta.crossover(isBlueFloat, isRedFloat)  // Red to Blue crossover (For long entry)
trendMagicTurnedRed = ta.crossunder(isBlueFloat, isRedFloat)  // Blue to Red crossover (For short entry)

// Variables to store SMA90 at the entry
var float longSma90 = na
var float shortSma90 = na

// Trading logic based on Perfect Order and color change
longCondition = bullishPerfectOrder and trendMagicTurnedBlue  // Buy when Perfect Order is bullish and Trend Magic turns red to blue
shortCondition = bearishPerfectOrder and trendMagicTurnedRed  // Sell when Perfect Order is bearish and Trend Magic turns blue to red

// Strategy Entry
if (longCondition)
    strategy.entry("Buy", strategy.long)
    longSma90 := sma90  // Store SMA90 at entry for long position

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    shortSma90 := sma90  // Store SMA90 at entry for short position

// Stop-Loss and Take-Profit calculations
// For Long Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (longCondition and not na(longSma90))
    longStopLoss = longSma90  // Use SMA90 at the time of entry
    longRisk = close - longSma90  // Calculate risk
    longTakeProfit = close + longRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=longStopLoss, limit=longTakeProfit)

// For Short Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (shortCondition and not na(shortSma90))
    shortStopLoss = shortSma90  // Use SMA90 at the time of entry
    shortRisk = shortSma90 - close  // Calculate risk
    shortTakeProfit = close - shortRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Moving Averages
plot(ema45, color=color.green, title="EMA 45")
plot(sma90, color=color.blue, title="SMA 90")
plot(sma180, color=color.red, title="SMA 180")