
La stratégie est un système de trading quantitatif qui combine une moyenne mobile exponentielle double (EMA) et un oscillateur stochastique. Utilisez les EMA sur 20 et 50 périodes pour déterminer les tendances du marché et utilisez l’oscillateur stochastique pour trouver des opportunités de trading dans les zones de surachat et de survente, obtenant ainsi une combinaison parfaite de tendance et de dynamique. La stratégie utilise des mesures strictes de gestion des risques, notamment des paramètres fixes de stop-loss et d’objectifs de profit.
La logique de base de la stratégie est divisée en trois parties : le jugement de tendance, le moment d’entrée et le contrôle des risques. Le jugement de tendance repose principalement sur la position relative de l’EMA rapide (20 périodes) et de l’EMA lente (50 périodes). Lorsque la ligne rapide est au-dessus de la ligne lente, on considère qu’il s’agit d’une tendance à la hausse, sinon, il s’agit d’une tendance à la baisse . Le signal d’entrée est confirmé par le croisement de l’oscillateur stochastique, à la recherche d’opportunités de trading à forte probabilité dans les zones de surachat et de survente. Le contrôle des risques utilise un stop loss à pourcentage fixe et un ratio de take profit de 2x pour garantir que chaque transaction présente un ratio risque/rendement clair.
Cette stratégie combine des indicateurs de tendance et de momentum pour créer un système de trading complet. L’avantage principal de la stratégie réside dans son cadre logique clair et son contrôle strict des risques, mais dans l’application concrète, l’optimisation des paramètres est toujours nécessaire en fonction des conditions spécifiques du marché. Grâce à une amélioration et une optimisation continues, la stratégie devrait permettre de maintenir des performances stables dans divers environnements de marché.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("EMA + Stochastic Strategy", overlay=true)
// Inputs for EMA
emaShortLength = input.int(20, title="Short EMA Length")
emaLongLength = input.int(50, title="Long EMA Length")
// Inputs for Stochastic
stochK = input.int(14, title="Stochastic %K Length")
stochD = input.int(3, title="Stochastic %D Smoothing")
stochOverbought = input.int(85, title="Stochastic Overbought Level")
stochOversold = input.int(15, title="Stochastic Oversold Level")
// Inputs for Risk Management
riskRewardRatio = input.float(2.0, title="Risk-Reward Ratio")
stopLossPercent = input.float(1.0, title="Stop Loss (%)")
// EMA Calculation
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
// Stochastic Calculation
k = ta.stoch(high, low, close, stochK)
d = ta.sma(k, stochD)
// Trend Condition
isUptrend = emaShort > emaLong
isDowntrend = emaShort < emaLong
// Stochastic Signals
stochBuyCrossover = ta.crossover(k, d)
stochBuySignal = k < stochOversold and stochBuyCrossover
stochSellCrossunder = ta.crossunder(k, d)
stochSellSignal = k > stochOverbought and stochSellCrossunder
// Entry Signals
buySignal = isUptrend and stochBuySignal
sellSignal = isDowntrend and stochSellSignal
// Strategy Execution
if buySignal
strategy.entry("Buy", strategy.long)
stopLoss = close * (1 - stopLossPercent / 100)
takeProfit = close * (1 + stopLossPercent * riskRewardRatio / 100)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", stop=stopLoss, limit=takeProfit)
if sellSignal
strategy.entry("Sell", strategy.short)
stopLoss = close * (1 + stopLossPercent / 100)
takeProfit = close * (1 - stopLossPercent * riskRewardRatio / 100)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", stop=stopLoss, limit=takeProfit)
// Plotting
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")