
La stratégie est un système de trading basé sur la dynamique, qui utilise principalement l’indicateur Balance of Power pour effectuer des transactions sur une période de 4 heures. En mesurant l’opposition de force entre les acheteurs et les vendeurs, le signal de négociation est déclenché lorsque l’indicateur franchit la limite prédéfinie. La stratégie comprend des fonctionnalités telles que la gestion de position dynamique, le levier réglable et le suivi visuel des transactions, qui permettent de capturer efficacement les virages de tendance du marché.
Le cœur de la stratégie est de mesurer l’équilibre des forces de vente et de vente sur le marché en calculant le prix de clôture-prix d’ouverture / prix de vente-prix de vente. Lorsque cette valeur est proche de 1, elle indique une forte dynamique de baisse, et une forte pression à la baisse lorsqu’elle est proche de 1. La logique de négociation spécifique est la suivante:
La stratégie capte les changements de dynamique du marché par des indicateurs de force équilibrée, combinés à une gestion de position dynamique et à un contrôle des risques, pour construire un système de négociation relativement complet. Bien qu’il y ait un certain risque, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées par une optimisation et une amélioration continues.
/*backtest
start: 2024-02-25 00:00:00
end: 2025-02-22 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy(title="Balance of Power for US30 4H", format=format.price, precision=2, default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=true, commission_value=0.01, max_labels_count=500, max_lines_count = 500)
leverage = input.float(5, "Leverage 1:", tooltip="Multiply your equity (100%) times the leverage.")
p = (close - open) / (high - low)
qty = strategy.equity * leverage / close
if ta.crossover(p, 0.8)
strategy.entry("L", strategy.long, qty=qty)
if ta.crossunder(p, -0.8)
strategy.close("L")
green = color.new(#0097a7, 0)
red = color.new(#ff195f, 0)
green90 = color.new(#0097a7, 85)
red90 = color.new(#ff195f, 85)
if strategy.position_size > strategy.position_size[1]
label.new(bar_index, low * 0.999, text="▲", textcolor=green, size=size.normal, textalign=text.align_center, color=green90, style=label.style_text_outline)
label.new(bar_index, low * 0.999, text="Buy", textcolor=green, size=size.tiny, textalign=text.align_center, color=green90, style=label.style_label_up)
if strategy.position_size < strategy.position_size[1]
label.new(bar_index, high * 1.001, text="▼", textcolor=red, size=size.normal, textalign=text.align_center, color=red90, style=label.style_text_outline)
label.new(bar_index, high * 1.001, text="Close", textcolor=red, size=size.tiny, textalign=text.align_center, color=red90, style=label.style_label_down)
var float tradeEntryPrice = na
var int tradeEntryBar = na
if strategy.position_size > 0 and strategy.position_size[1] == 0
tradeEntryPrice := close
tradeEntryBar := bar_index
if strategy.position_size == 0 and strategy.position_size[1] > 0
exitPrice = close
exitBar = bar_index
tradeColor = (exitPrice - tradeEntryPrice > 0) ? green : red
topPrice = math.max(tradeEntryPrice, exitPrice)
bottomPrice = math.min(tradeEntryPrice, exitPrice)
box.new(tradeEntryBar, topPrice, exitBar, bottomPrice, border_width=0, bgcolor=color.new(tradeColor, 85))
line.new(tradeEntryBar, topPrice, exitBar, topPrice, color=tradeColor, width=1)
line.new(tradeEntryBar, bottomPrice, exitBar, bottomPrice, color=tradeColor, width=1)