
Strategi ini adalah sistem perdagangan berbasis momentum, terutama menggunakan indikator Balance of Power untuk berdagang pada periode waktu 4 jam. Dengan mengukur kekuatan lawan dari kedua belah pihak, sinyal perdagangan dipicu ketika indikator menembus ambang batas yang ditentukan. Strategi ini mencakup manajemen posisi dinamis, manajemen leverage yang dapat disesuaikan, dan pelacakan perdagangan visual, yang dapat secara efektif menangkap titik-titik perubahan tren pasar.
Inti dari strategi ini adalah untuk mengukur keseimbangan kekuatan jual beli pasar dengan menghitung ((harga penutupan - harga pembukaan) / ((harga tertinggi - harga terendah). Ketika nilai mendekati 1 menunjukkan kekuatan bullish yang kuat, dan mendekati -1 menunjukkan tekanan bearish yang kuat. Logika perdagangan spesifik adalah sebagai berikut:
Strategi ini menangkap perubahan dinamika pasar melalui indikator kekuatan keseimbangan, yang dikombinasikan dengan manajemen posisi dinamis dan pengendalian risiko, untuk membangun sistem perdagangan yang relatif utuh. Meskipun ada risiko tertentu, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut melalui optimasi dan perbaikan berkelanjutan.
/*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)