Cette stratégie est un système de suivi de tendance intégré qui combine un graphique d’équilibre à première vue (Ichimoku Cloud), un indicateur de force relative (RSI) et un indicateur de dispersion de convergence des moyennes mobiles (MACD). La stratégie utilise le graphique de nuage pour déterminer la direction de la tendance globale, utilise le RSI pour confirmer le mouvement des prix, puis se combine avec la croisée des lignes de signaux MACD pour déterminer le moment de la transaction spécifique, permettant ainsi une analyse de marché à plusieurs niveaux et des décisions de négociation.
La logique centrale de la stratégie est basée sur la synergie de trois indicateurs techniques:
Les règles de négociation de la stratégie sont les suivantes: Il y a plusieurs conditions:
Conditions de mise à l’écart
Risque d’inversion de tendance : des stop loss continus peuvent survenir aux points d’inversion de tendance. Recommandation: il est possible d’ajouter des périodes de confirmation des tendances.
Risque de marché oscillant: il peut y avoir des transactions fréquentes dans les marchés oscillants. Recommandation: Augmenter les conditions de filtrage du signal, telles que l’amplitude minimale de fluctuation requise.
Risque de retard: tous les indicateurs ont un certain retard et peuvent manquer le meilleur point d’entrée. Recommandation: peut être combiné avec des indicateurs plus rapides ou des analyses de comportement des prix.
Sensitivité des paramètres: une mauvaise configuration des paramètres peut entraîner une mauvaise performance de la stratégie. Recommandation: une combinaison appropriée de paramètres doit être déterminée par une optimisation de rétroaction.
La stratégie a pour principaux avantages les mécanismes de confirmation multiples et les règles de négociation claires, mais nécessite également une attention particulière aux points de retournement de tendance et aux risques liés aux marchés oscillante. La stabilité et la rentabilité de la stratégie devraient être encore améliorées grâce à l’ajustement des paramètres dynamiques, au filtrage de l’environnement du marché et à l’optimisation de la gestion des risques.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ichimoku + RSI + MACD Strategy", overlay=true)
// Ichimoku Cloud parameters
tenkanPeriod = 9
kijunPeriod = 26
senkouSpanBPeriod = 52
displacement = 26
// RSI parameters
rsiLength = 14
rsiOverbought = 70
rsiOversold = 30
// MACD parameters
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// Ichimoku calculations
tenkanSen = (ta.highest(high, tenkanPeriod) + ta.lowest(low, tenkanPeriod)) / 2
kijunSen = (ta.highest(high, kijunPeriod) + ta.lowest(low, kijunPeriod)) / 2
senkouSpanA = (tenkanSen + kijunSen) / 2
senkouSpanB = (ta.highest(high, senkouSpanBPeriod) + ta.lowest(low, senkouSpanBPeriod)) / 2
chikouSpan = close[displacement]
// Plotting Ichimoku Cloud
plot(tenkanSen, color=color.red, title="Tenkan-sen")
plot(kijunSen, color=color.blue, title="Kijun-sen")
plot(senkouSpanA[displacement], color=color.green, title="Senkou Span A")
plot(senkouSpanB[displacement], color=color.red, title="Senkou Span B")
fill(plot(senkouSpanA[displacement]), plot(senkouSpanB[displacement]), color=color.new(color.green, 90), title="Cloud")
// RSI calculation
rsi = ta.rsi(close, rsiLength)
// Long entry condition
longCondition = (close > senkouSpanA) and (close > senkouSpanB) and (rsi > rsiOversold) and (ta.crossover(macdLine, signalLine))
if (longCondition)
strategy.entry("Long", strategy.long)
// Short entry condition
shortCondition = (close < senkouSpanA) and (close < senkouSpanB) and (rsi < rsiOverbought) and (ta.crossunder(macdLine, signalLine))
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit conditions
if (ta.crossunder(macdLine, signalLine) and strategy.position_size > 0)
strategy.close("Long")
if (ta.crossover(macdLine, signalLine) and strategy.position_size < 0)
strategy.close("Short")
// Plot RSI
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, color=color.blue, title="RSI")