
Cette stratégie est un système de suivi de tendances dynamiques combinant des moyennes mobiles indicielles (EMA) et des formes de graphiques de coupe. Elle identifie les tendances du marché en identifiant des formes de graphiques de coupe spécifiques (agulles et engouement), en combinant des indicateurs EMA rapides et lents, et en utilisant l’indicateur ATR pour mesurer la volatilité du marché. L’idée centrale de la stratégie est d’identifier des opportunités d’entrée précises en utilisant les formes de graphiques de coupe dans le cas où les tendances du marché sont confirmées.
La stratégie comprend trois composantes principales:
Les conditions d’entrée exigent une confirmation stricte de la tendance et de la forme: une entrée à plusieurs têtes nécessite de voir une forme à plusieurs coups, tandis que le marché est en tendance à la hausse; une entrée à vide nécessite une forme à coups vides, tandis que le marché est en tendance à la baisse.
Il s’agit d’une stratégie de suivi de tendance bien structurée qui offre un système de trading relativement fiable en combinant plusieurs outils d’analyse technique. Bien que la version actuelle présente des points à améliorer, sa logique centrale est raisonnable.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-19 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Candlestick Bible: Dynamic Price Follower (Corrected)", overlay=true, pyramiding=0, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//=======================
// 1. PATTERN DETECTION
//=======================
// Pin Bar Detection
bodySize = math.abs(close - open)
upperShadow = high - math.max(close, open)
lowerShadow = math.min(close, open) - low
isBullishPin = (lowerShadow >= 2 * bodySize) and (upperShadow <= bodySize / 2)
isBearishPin = (upperShadow >= 2 * bodySize) and (lowerShadow <= bodySize / 2)
// Engulfing Pattern
isBullishEngulf = (close[1] < open[1]) and (close > open) and (close > open[1]) and (open < close[1])
isBearishEngulf = (close[1] > open[1]) and (close < open) and (close < open[1]) and (open > close[1])
//=======================
// 2. DYNAMIC TREND SYSTEM
//=======================
emaFast = ta.ema(close, 8)
emaSlow = ta.ema(close, 21)
marketTrend = emaFast > emaSlow ? "bullish" : "bearish"
//=======================
// 3. PRICE MOVEMENT SYSTEM
//=======================
atr = ta.atr(14)
//=======================
// 4. STRATEGY RULES
//=======================
longCondition = (isBullishPin or isBullishEngulf) and marketTrend == "bullish" and close > emaSlow
shortCondition = (isBearishPin or isBearishEngulf) and marketTrend == "bearish" and close < emaSlow
//=======================
// 5. STRATEGY ENTRIES
//=======================
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
//=======================
// 6. VISUAL FEEDBACK
//=======================
plot(emaFast, "Fast EMA", color=color.blue)
plot(emaSlow, "Slow EMA", color=color.red)
plotshape(longCondition, "Long Signal", shape.triangleup, location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, "Short Signal", shape.triangledown, location.abovebar, color=color.red, size=size.small)