
La stratégie est un système de négociation basé sur le croisement des moyennes mobiles à moyen et long terme (EMA), combiné à une gestion de position dynamique et à un mécanisme de contrôle des risques. La stratégie identifie les tendances du marché grâce à un croisement des EMA de 21 cycles et de 55 cycles, tout en ajustant dynamiquement la taille de la position de négociation en fonction du rapport de risque-rendement et du pourcentage de risque personnalisés par l’utilisateur, ce qui permet un contrôle précis des risques.
La logique de base de la stratégie est basée sur les signaux croisés des EMA de deux périodes de temps. Lorsque l’EMA de 21 cycles traverse le cycle 55 EMA vers le haut, le système identifie la tendance à la hausse et déclenche un signal de multiplication. Lorsque l’EMA de 21 cycles traverse le cycle 55 EMA vers le bas, le système identifie la tendance à la baisse et déclenche un signal de blanchiment.
La stratégie construit un système de négociation complet en combinant les signaux de tendance EMA et la gestion dynamique des risques. Le principal avantage de la stratégie réside dans ses mécanismes scientifiques de gestion des positions et de contrôle des risques, mais elle nécessite toujours une optimisation des paramètres appropriés en fonction de l’environnement du marché et des préférences de risque personnelles.
/*backtest
start: 2024-02-21 00:00:00
end: 2024-07-11 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Carlos Humberto Rodríguez Arias
//@version=5
strategy("EMA Crossover Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// EMA periods
MT_EMA = input.int(21, title="Medium Term EMA")
LT_EMA = input.int(55, title="Long Term EMA")
RR = input.float(2.0, title="Risk-Reward Ratio") // User-defined RR
RiskPercent = input.float(1.0, title="Risk Percentage") // User-defined risk percentage
// Calculate EMAs
Signal_MT_EMA = ta.ema(close, MT_EMA)
Signal_LT_EMA = ta.ema(close, LT_EMA)
// Plot EMAs
plot(Signal_MT_EMA, title="Medium Term EMA", color=color.orange, linewidth=2)
plot(Signal_LT_EMA, title="Long Term EMA", color=color.blue, linewidth=2)
// Determine trend conditions
uptrend = ta.crossover(Signal_MT_EMA, Signal_LT_EMA)
downtrend = ta.crossunder(Signal_MT_EMA, Signal_LT_EMA)
// Stop-Loss Calculations
longStopLoss = ta.lowest(low, 2) // SL for buy = lowest low of last 2 candles
shortStopLoss = ta.highest(high, 2) // SL for sell = highest high of last 2 candles
// Take-Profit Calculations
longTakeProfit = close + (close - longStopLoss) * RR
shortTakeProfit = close - (shortStopLoss - close) * RR
// Calculate Position Size based on Risk Percentage
capital = strategy.equity * (RiskPercent / 100)
longPositionSize = capital / (close - longStopLoss)
shortPositionSize = capital / (shortStopLoss - close)
// Execute Buy Order
if uptrend
strategy.entry("Long", strategy.long, qty=longPositionSize)
strategy.exit("Long Exit", from_entry="Long", stop=longStopLoss, limit=longTakeProfit)
// Execute Sell Order
if downtrend
strategy.entry("Short", strategy.short, qty=shortPositionSize)
strategy.exit("Short Exit", from_entry="Short", stop=shortStopLoss, limit=shortTakeProfit)