
La stratégie utilise les zones de demande et d’offre, les moyennes mobiles de l’indice (EMA) et la plage d’oscillation réelle moyenne (ATR) pour juger les signaux de négociation. L’utilisateur peut ajuster les paramètres EMA et la visibilité des signaux d’achat et de vente. La stratégie marque des zones de demande telles que plus haut plus haut (HH), plus bas plus bas (LL), plus bas plus haut (LH) et plus haut plus bas (HL).
La moyenne mobile de l’indice EMA:
ATR moyenne de la vraie amplitude de fluctuation:
Ces calculs sont utilisés pour déterminer les tendances des EMA et les arrêts mobiles ATR basés sur les fluctuations du marché. La stratégie vise à fournir un signal d’achat et de vente basé sur la relation entre le prix de clôture, les EMA et les valeurs ATR.
La stratégie utilise des termes tels que HH (plus haut, plus haut), LL (plus bas, plus bas), HL (plus haut, plus bas) et LH (plus bas, plus haut) pour identifier différents modèles de comportement des prix, souvent utilisés dans l’analyse des tendances:
Plus haut, plus hautLe prix de l’or a augmenté de façon significative depuis le début de l’année, et il est en hausse depuis le début de l’année.
Plus bas plus basLe prix actuel est inférieur au précédent, ce qui indique un potentiel mouvement à la baisse.
Plus haut, plus bas (HL)Le prix de l’électricité est en baisse depuis le début de l’année, mais la tendance à la hausse se poursuit.
Plus bas plus haut (LH)Le prix de l’électricité est en baisse depuis le début de l’année, ce qui indique que la tendance baissière pourrait se poursuivre.
L’utilisation de ces modèles en combinaison avec d’autres indicateurs techniques permet de déterminer l’inversion ou la poursuite d’une tendance potentielle. La stratégie utilise ces modèles pour identifier les moments d’entrée ou de sortie.
Signaux d’entrée: La troisième ligne K se ferme lorsque le prix est supérieur ou inférieur au prix le plus élevé ou le plus bas de la journée précédente.
Comment arrêter les pertes: avec un certain nombre de fois la valeur ATR (default 2 fois) comme point d’arrêt de retrait.
La stratégie utilise de multiples indicateurs techniques et de prix, tels que les tendances, les inversions, les fluctuations, etc. Elle fonctionne bien dans la rétroaction. Cependant, la complexité du marché réel, la variabilité, l’optimisation et le filtrage approprié des signaux d’entrée de jeu sont nécessaires.
/*backtest
start: 2023-12-18 00:00:00
end: 2024-01-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supply and Demand Zones with EMA and Trailing Stop", shorttitle="SD Zones", overlay=true)
showBuySignals = input(true, title="Show Buy Signals", group="Signals")
showSellSignals = input(true, title="Show Sell Signals", group="Signals")
showHLZone = input(true, title="Show HL Zone", group="Zones")
showLHZone = input(true, title="Show LH Zone", group="Zones")
showHHZone = input(true, title="Show HH Zone", group="Zones")
showLLZone = input(true, title="Show LL Zone", group="Zones")
emaLength = input(200, title="EMA Length", group="EMA Settings")
atrLength = input(14, title="ATR Length", group="Trailing Stop")
atrMultiplier = input(2, title="ATR Multiplier", group="Trailing Stop")
// Function to identify supply and demand zones
getZones(src, len, mult) =>
base = request.security(syminfo.tickerid, "D", close)
upper = request.security(syminfo.tickerid, "D", high)
lower = request.security(syminfo.tickerid, "D", low)
multiplier = request.security(syminfo.tickerid, "D", mult)
zonetype = base + multiplier * len
zone = src >= zonetype
[zone, upper, lower]
// Identify supply and demand zones
[supplyZone, _, _] = getZones(close, high[1] - low[1], 1)
[demandZone, _, _] = getZones(close, high[1] - low[1], -1)
// Plot supply and demand zones
bgcolor(supplyZone ? color.new(color.red, 80) : na)
bgcolor(demandZone ? color.new(color.green, 80) : na)
// EMA with Linear Weighted method
ema = ta.ema(close, emaLength)
// Color code EMA based on its relation to candles
emaColor = close > ema ? color.new(color.green, 0) : close < ema ? color.new(color.red, 0) : color.new(color.yellow, 0)
// Plot EMA
plot(ema, color=emaColor, title="EMA")
// Entry Signal Conditions after the third candle
longCondition = ta.crossover(close, high[1]) and bar_index >= 2
shortCondition = ta.crossunder(close, low[1]) and bar_index >= 2
// Trailing Stop using ATR
atrValue = ta.atr(atrLength)
trailStop = close - atrMultiplier * atrValue
// Strategy Entry and Exit
if (longCondition)
strategy.entry("Buy", strategy.long)
strategy.exit("TrailStop", from_entry="Buy", loss=trailStop)
if (shortCondition)
strategy.entry("Sell", strategy.short)
strategy.exit("TrailStop", from_entry="Sell", loss=trailStop)
// Plot Entry Signals
plotshape(series=showBuySignals ? longCondition : na, title="Buy Signal", color=color.new(color.green, 0), style=shape.triangleup, location=location.belowbar)
plotshape(series=showSellSignals ? shortCondition : na, title="Sell Signal", color=color.new(color.red, 0), style=shape.triangledown, location=location.abovebar)
// Plot Trailing Stop
plot(trailStop, color=color.new(color.red, 0), title="Trailing Stop")
// Plot HH, LL, LH, and HL zones
plotshape(series=showHHZone and ta.highest(high, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HH Zone", color=color.new(color.blue, 80), style=shape.triangleup, location=location.abovebar)
plotshape(series=showLLZone and ta.lowest(low, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LL Zone", color=color.new(color.blue, 80), style=shape.triangledown, location=location.belowbar)
plotshape(series=showLHZone and ta.highest(high, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LH Zone", color=color.new(color.orange, 80), style=shape.triangleup, location=location.abovebar)
plotshape(series=showHLZone and ta.lowest(low, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HL Zone", color=color.new(color.orange, 80), style=shape.triangledown, location=location.belowbar)