Méthode de trading Balance Beam : La parfaite harmonie entre les chandeliers et les graphiques en nuage

HEIKEN ASHI ICHIMOKU EMA ATR
Date de création: 2025-10-20 13:19:44 Dernière modification: 2025-10-20 13:19:44
Copier: 0 Nombre de clics: 136
2
Suivre
329
Abonnés

Méthode de trading Balance Beam : La parfaite harmonie entre les chandeliers et les graphiques en nuage Méthode de trading Balance Beam : La parfaite harmonie entre les chandeliers et les graphiques en nuage

Je ne sais pas ce qu’il y a dans cette stratégie.

Vous savez, cette tactique, c’est comme faire danser un diagramme de piles sur une planche d’équilibre ! Elle transforme un diagramme de K ordinaire en un diagramme de Heiken Ashi plus lisse, puis en une référence à un diagramme de nuage d’Ichimoku, ce qui est un peu comme un patin de figure pour deux dans le monde de l’analyse technique.

La logique du noyau: la sagesse du triple filtre

L’essence de cette stratégie réside dans un “triple système de filtrage” aussi rigoureux que celui que vous choisissez pour votre cardiomètre: tout d’abord, l’aiguille Heiken Ashi doit être du bon côté de la ligne de référence d’Ichimoku (c’est le seuil de base); ensuite, l’EMA à 200 cycles vous assure de suivre la grande tendance (ne pas aller à contre-courant); enfin, l’Ichimoku s’éloigne du filtre pour s’assurer que la direction de la dynamique est correcte (pour éviter les fausses crevasses).

C’est comme conduire une voiture: le feu vert est allumé (signal HA), la route est en bon état (filtre de tendance) et il n’y a pas de véhicule en marche arrière devant (confirmation de déviation).

Gestion des risques: arrêt dynamique ATR

Le plus intelligent dans cette stratégie est d’utiliser l’ATR (Average True Range) pour régler le stop-loss. Il s’adapte automatiquement à la volatilité du marché, comme le système de navigation automatique d’une voiture.

En outre, il utilise plusieurs périodes de temps: l’ATR de la période élevée est utilisé pour l’arrêt des pertes (pour que les bénéfices s’épuisent) et l’ATR de la période basse est utilisé pour l’arrêt des pertes (pour que les pertes s’arrêtent rapidement).

L’application de la guerre contre les armes à feu: quand est-ce le mieux ?

Cette tactique est particulièrement adaptée aux conditions de marché où la tendance est évidente. Il est recommandé de rester sur place pendant que le marché se déplace à la verticale, car le Heiken Ashi est susceptible de générer de faux signaux dans un marché en crise. Le meilleur scénario d’utilisation est le graphique à 4 heures ou cyclique des principales paires de devises, en particulier pendant la phase de confirmation de la tendance après la publication de données économiques importantes.

N’oubliez pas qu’aucune stratégie n’est universelle. La force de cette stratégie est de capturer les tendances à moyen et long terme, et si vous êtes un trader de courte ligne rapide, vous devrez peut-être ajuster les paramètres ou rechercher d’autres stratégies.

Code source de la stratégie
/*backtest
start: 2024-10-20 00:00:00
end: 2025-10-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":500000}]
*/

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © MahdiSalari8
//@version=6
strategy("Heiken Ashi Bas", overlay=true, 
     default_qty_type=strategy.fixed, 
     default_qty_value=0.1, 
     commission_type=strategy.commission.percent, 
     commission_value=0.07,
     initial_capital=10000000,
     pyramiding=0)  // Changed to 0

// Inputs
useTrendFilter = input.bool(true, "Use 200 EMA Trend Filter", group="Filters")
showSignals = input.bool(true, "Show Buy/Sell Signals", group="Visuals")
showEma = input.bool(false, "Show 200 EMA", group="Visuals")
atrPeriod = input.int(14, "ATR Period", minval=1, group="Risk Management")
htf = input.timeframe("5", "Higher Timeframe for TP", group="Timeframes")
ltf = input.timeframe("1", "Lower Timeframe for SL", group="Timeframes")
tpMultiplier = input.float(2.0, "TP Multiplier", minval=0.1, group="Risk Management")
slMultiplier = input.float(1.0, "SL Multiplier", minval=0.1, group="Risk Management")

// Ichimoku Divergence Settings
useDivergenceFilter = input.bool(true, "Use Ichimoku Divergence Filter", group="Ichimoku Divergence")
showDivergenceLine = input.bool(true, "Show Divergence Line", group="Ichimoku Divergence")
divergenceLookback = input.int(2, "Divergence Lookback (bars)", minval=1, maxval=20, group="Ichimoku Divergence")
divergenceLineWidth = input.int(5, "Divergence Line Width", minval=1, maxval=5, group="Ichimoku Divergence")

// Heiken Ashi Calculation
var float haOpen = na
var float haClose = na
var float haHigh = na
var float haLow = na

haClose := (open + high + low + close) / 4
haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2
haHigh := math.max(high, math.max(haOpen, haClose))
haLow := math.min(low, math.min(haOpen, haClose))

// Ichimoku Baseline (Kijun-sen)
kijunPeriod = 26
kijunSen = (ta.highest(high, kijunPeriod) + ta.lowest(low, kijunPeriod)) / 2

// Ichimoku Baseline Divergence Calculation
currentBaseline = kijunSen
pastBaseline = kijunSen[divergenceLookback]

// Calculate slope (divergence)
baselineSlope = (currentBaseline - pastBaseline) / divergenceLookback

// Determine bullish/bearish divergence (exclude when slope is 0)
bullishDivergence = baselineSlope > 0
bearishDivergence = baselineSlope < 0
slopeIsZero = baselineSlope == 0

// Trend Filter (200 EMA)
ema200 = ta.ema(close, 200)

// ATR Calculation for different timeframes
htfAtr = request.security(syminfo.tickerid, htf, ta.atr(atrPeriod))
ltfAtr = request.security(syminfo.tickerid, ltf, ta.atr(atrPeriod))

// Enhanced Entry Conditions with Divergence Filter (exclude when slope is 0)
longCondition = haClose > kijunSen and 
              haClose[1] >= kijunSen[1] and 
              haClose > haOpen and 
              (haHigh - haClose) >= (haClose - haOpen) * 0.3 and 
              (not useTrendFilter or close > ema200) and
              (not useDivergenceFilter or (bullishDivergence and not slopeIsZero))

shortCondition = haClose < kijunSen and 
               haClose[1] <= kijunSen[1] and 
               haClose < haOpen and 
               (haClose - haLow) >= (haOpen - haClose) * 0.3 and 
               (not useTrendFilter or close < ema200) and
              (not useDivergenceFilter or (bearishDivergence and not slopeIsZero))

// Dynamic TP/SL based on ATR
longTp = close + (htfAtr * tpMultiplier)
longSl = close - (ltfAtr * slMultiplier)
shortTp = close - (htfAtr * tpMultiplier)
shortSl = close + (ltfAtr * slMultiplier)

// Strategy Execution
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", "Long", limit=longTp, stop=longSl)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", "Short", limit=shortTp, stop=shortSl)

// Plotting
plot(kijunSen, color=color.blue, title="Ichimoku Baseline", linewidth=2, display=display.all)

// Plot Divergence Line (gray when slope is 0)

plot(showEma ? ema200 : na, color=color.purple, title="200 EMA", linewidth=1, display=display.all)

// Heiken Ashi Candles with 25% opacity
candleColor = haClose > haOpen ? color.new(color.green, 75) : color.new(color.red, 75)
plotcandle(haOpen, haHigh, haLow, haClose, title="Heiken Ashi", color=candleColor, wickcolor=candleColor, bordercolor=candleColor, display=display.all)

// Plot Buy/Sell Signals with labelup/labeldown shapes
plotshape(showSignals and longCondition, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), size=size.small, title="Buy Signal", display=display.all)
plotshape(showSignals and shortCondition, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), size=size.small, title="Sell Signal", display=display.all)

// Plot TP/SL levels - TP as lines with breaks, SL hidden by default
plot(strategy.position_size > 0 ? longTp : na, "Long TP", color=color.green, style=plot.style_linebr, linewidth=1, display=display.all)
plot(strategy.position_size > 0 ? longSl : na, "Long SL", color=color.red, style=plot.style_linebr, linewidth=1, display=display.none)
plot(strategy.position_size < 0 ? shortTp : na, "Short TP", color=color.green, style=plot.style_linebr, linewidth=1, display=display.all)
plot(strategy.position_size < 0 ? shortSl : na, "Short SL", color=color.red, style=plot.style_linebr, linewidth=1, display=display.none)

// Alerts
alertcondition(longCondition, "Long Signal", "HA Cross Above Kijun-sen with Bullish Divergence")
alertcondition(shortCondition, "Short Signal", "HA Cross Below Kijun-sen with Bearish Divergence")