Strategi Perdagangan Breakout Pengembalian Proporsional Tinggi Berdasarkan Struktur Harga

RR SL TP ATH ATL
Tanggal Pembuatan: 2025-02-18 15:42:01 Akhirnya memodifikasi: 2025-02-18 15:42:01
menyalin: 1 Jumlah klik: 393
1
fokus pada
1617
Pengikut

Strategi Perdagangan Breakout Pengembalian Proporsional Tinggi Berdasarkan Struktur Harga

Ringkasan

Ini adalah strategi perdagangan terobosan yang didasarkan pada perilaku harga murni, dirancang dengan rasio pengembalian risiko tinggi 1: 5. Strategi ini melakukan perdagangan dengan mengidentifikasi terobosan pada tingkat harga kunci, dan dalam kombinasi dengan struktur pasar yang dinamis untuk menetapkan tujuan stop loss dan profit. Strategi ini tidak bergantung pada indikator teknis apa pun dan membuat keputusan perdagangan sepenuhnya berdasarkan perilaku harga real-time.

Prinsip Strategi

Logika inti dari strategi ini mencakup bagian-bagian utama berikut:

  1. Membentuk titik acuan untuk terobosan dengan mengidentifikasi harga tertinggi dan terendah pada periode yang telah dilalui
  2. Buka posisi over saat harga close breaks dari high sebelumnya, buka posisi kosong saat breaks dari low sebelumnya
  3. Berdasarkan posisi stop loss yang dinamis dengan posisi volatilitas terkini, posisi multi-posisi dengan posisi stop loss pada titik rendah, posisi kosong dengan posisi stop loss pada titik tinggi
  4. Posisi target keuntungan dihitung berdasarkan rasio risiko-pengembalian 1: 5
  5. Tetapkan batas maksimum transaksi per hari untuk menghindari over-trading Seluruh proses perdagangan didasarkan pada perilaku harga, tanpa menggunakan indikator teknis sebagai referensi.

Keunggulan Strategis

  1. Perdagangan dengan perilaku harga murni, menghindari gangguan dari keterlambatan indikator
  2. Desain dengan tingkat pengembalian risiko tinggi, keuntungan potensial dari setiap transaksi adalah 5 kali risiko
  3. Pengaturan Stop Loss Dinamis, Adaptasi Sesuai Struktur Pasar
  4. Sinyal perdagangan yang jelas dan tanda-tanda visual untuk memudahkan transaksi
  5. Parameter sangat dapat disesuaikan untuk beradaptasi dengan lingkungan pasar yang berbeda
  6. Kontrol risiko yang ketat, termasuk pembatasan jumlah transaksi per hari

Risiko Strategis

  1. Dalam pasar yang bergejolak, sinyal-sinyal palsu yang sering muncul
  2. Tingkat risiko yang tinggi dapat menyebabkan tingkat kemenangan yang relatif rendah
  3. Pembalikan setelah terobosan dapat memicu stop loss
  4. Perubahan volatilitas pasar dapat mempengaruhi kinerja strategi
  5. Pergeseran harga yang lebih besar diperlukan untuk mencapai target keuntungan.

Tindakan mitigasi:

  • Menggunakan strategi ini di pasar tren
  • Hindari transaksi selama siaran pers penting
  • Skala posisi yang masuk akal
  • Parameter yang harus diperiksa dan dioptimalkan

Arah optimasi strategi

  1. Menambahkan filter tren, hanya berdagang di arah tren utama
  2. Menambahkan mekanisme konfirmasi pengiriman untuk meningkatkan keandalan terobosan
  3. Rasio risiko-return yang disesuaikan dengan dinamika fluktuasi
  4. Memperkenalkan analisis siklus waktu ganda untuk meningkatkan akurasi transaksi
  5. Mengembangkan mekanisme stop loss yang lebih cerdas, seperti tracking stop loss
  6. Menambahkan kemampuan untuk mengidentifikasi kondisi pasar, menyesuaikan parameter strategi

Meringkaskan

Ini adalah strategi perdagangan perilaku harga yang dirancang dengan ketat, logika yang jelas. Dengan desain rasio pengembalian risiko yang tinggi, mengejar keuntungan yang signifikan sambil mengontrol risiko secara efektif. Keunggulan strategi adalah didorong oleh harga murni, parameter yang fleksibel dan dapat disesuaikan, kontrol risiko yang sempurna.

Kode Sumber Strategi
/*backtest
start: 2024-02-19 00:00:00
end: 2024-11-14 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Filtered Price Action Breakout", overlay=true)

// === INPUTS ===
lookback = input.int(20, title="Breakout Lookback Period", minval=5)
stopLookback = input.int(10, title="Stop Loss Lookback Period", minval=3)
rrMultiplier = input.float(5.0, title="Risk-to-Reward Multiplier", step=0.1)
maxTradesPerDay = input.int(5, title="Max Trades Per Day", minval=1)

// Ensure there are enough bars for calculations
inRange = bar_index >= lookback

// === CALCULATIONS ===
// Highest high and lowest low over the 'lookback' period
highestHigh = ta.highest(high, lookback)
lowestLow = ta.lowest(low, lookback)

// Define breakout conditions (using previous bar's level)
bullBreakout = ta.crossover(close, highestHigh[1])
bearBreakout = ta.crossunder(close, lowestLow[1])

// Store breakout signals in variables to prevent inconsistencies
bullBreakoutSignal = bullBreakout
bearBreakoutSignal = bearBreakout

// Determine stop levels based on recent swing lows/highs
longStop = ta.lowest(low, stopLookback)
shortStop = ta.highest(high, stopLookback)

// Track number of trades per day (fixing boolean condition issue)
newDay = ta.change(time("D")) != 0
todayTrades = ta.barssince(newDay)
tradeCount = 0
if newDay
    tradeCount := 0
else
    tradeCount := tradeCount + 1

// === STRATEGY LOGIC: ENTRY & EXIT ===
if bullBreakoutSignal and tradeCount < maxTradesPerDay
    entryPrice = close
    stopLevel = longStop
    risk = entryPrice - stopLevel
    if risk > 0
        target = entryPrice + rrMultiplier * risk
        strategy.entry("Long", strategy.long)
        strategy.exit("Long Exit", from_entry="Long", stop=stopLevel, limit=target)
        tradeCount := tradeCount + 1
        
        // // Draw Markups
        // label.new(bar_index, entryPrice, text="Long Entry", color=color.green, textcolor=color.white, size=size.small, style=label.style_label_down)
        // line.new(x1=bar_index, y1=entryPrice, x2=bar_index + 5, y2=entryPrice, color=color.green, width=2)
        // line.new(x1=bar_index, y1=stopLevel, x2=bar_index + 5, y2=stopLevel, color=color.red, width=2, style=line.style_dotted)
        // line.new(x1=bar_index, y1=target, x2=bar_index + 5, y2=target, color=color.blue, width=2, style=line.style_dashed)
        // label.new(bar_index, stopLevel, text="Stop Loss", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down)
        // label.new(bar_index, target, text="Target", color=color.blue, textcolor=color.white, size=size.small, style=label.style_label_up)

if bearBreakoutSignal and tradeCount < maxTradesPerDay
    entryPrice = close
    stopLevel = shortStop
    risk = stopLevel - entryPrice
    if risk > 0
        target = entryPrice - rrMultiplier * risk
        strategy.entry("Short", strategy.short)
        strategy.exit("Short Exit", from_entry="Short", stop=stopLevel, limit=target)
        tradeCount := tradeCount + 1
        
        // // Draw Markups
        // label.new(bar_index, entryPrice, text="Short Entry", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_up)
        // line.new(x1=bar_index, y1=entryPrice, x2=bar_index + 5, y2=entryPrice, color=color.red, width=2)
        // line.new(x1=bar_index, y1=stopLevel, x2=bar_index + 5, y2=stopLevel, color=color.green, width=2, style=line.style_dotted)
        // line.new(x1=bar_index, y1=target, x2=bar_index + 5, y2=target, color=color.blue, width=2, style=line.style_dashed)
        // label.new(bar_index, stopLevel, text="Stop Loss", color=color.green, textcolor=color.white, size=size.small, style=label.style_label_up)
        // label.new(bar_index, target, text="Target", color=color.blue, textcolor=color.white, size=size.small, style=label.style_label_down)

// === PLOTTING ===
plot(highestHigh, color=color.green, title="Highest High (Breakout Level)")
plot(lowestLow, color=color.red, title="Lowest Low (Breakout Level)")