Dalam Bar Range Breakout Strategi

Penulis:ChaoZhang, Tanggal: 2023-12-11 15:16:53
Tag:

img

Gambaran umum

Strategi breakout dalam kisaran bar adalah strategi aksi harga yang membuat keputusan perdagangan berdasarkan pola dalam bar. Hal ini terjadi ketika kisaran bar saat ini, diukur dengan perbedaan antara tinggi dan rendah, lebih kecil dari kisaran bar sebelumnya, menunjukkan konsolidasi atau ketidakseimbangan di pasar.

Logika Strategi

Strategi ini menggunakan indikator dan variabel berikut:

  • Rata-rata rentang sebenarnya (ATR): rentang sebenarnya rata-rata selama N bar terakhir yang dihitung menggunakan fungsi ATR.
  • Jangkauan: Perbedaan antara tinggi dan rendah dari bar arus.
  • insideBar: Variabel boolean yang benar jika Jangkauan bar saat ini lebih kecil dari bar sebelumnya, menunjukkan bar dalam.
  • breakoutUp: Variabel Boolean yang benar jika close lebih tinggi dari bars sebelumnya, menunjukkan breakout ke atas.
  • breakoutDown: Variabel Boolean yang benar jika close lebih rendah dari bars sebelumnya, menunjukkan breakout ke bawah.
  • LiquidityUp: Tingkat tertinggi di atas N bar sebelumnya, mewakili area resistensi potensial.
  • liquidityDown: Low terendah di atas N bar yang lalu, mewakili area dukungan potensial.

Keputusan masuk didasarkan pada penembusan kisaran di luar batas sebelumnya tinggi/rendah. Secara khusus, masuk panjang ketika terjadi penembusan ke atas dan rendah saat ini berada di atas likuiditasDown, dan masuk pendek ketika terjadi penembusan ke bawah dan tinggi saat ini berada di bawah likuiditasUp.

Stop loss menggunakan ATR dikalikan dengan Range. Take profit menggunakan ATR dikalikan dengan Range.

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Menangkap peluang perdagangan dari perluasan kisaran setelah konsolidasi dalam bar.
  2. Mencegah terjebak menggabungkan arah breakout dan tingkat likuiditas.
  3. Aturan stop loss dan take profit yang jelas, mudah diterapkan.
  4. Kearah yang kuat, peluang tinggi untuk mencapai target keuntungan setelah momentum pecah.

Analisis Risiko

Risiko dari strategi ini:

  1. Gagal melarikan diri yang mengakibatkan terjebak.
  2. Pasar yang tidak stabil menyebabkan stop loss yang terkena.
  3. Tingkat likuiditas yang tidak akurat menyebabkan entri yang salah.
  4. Gagal membalikkan tidak dapat mencapai target keuntungan.

Arahan Optimasi

Bidang optimasi:

  1. Cari periode ATR optimal untuk kinerja maksimum.
  2. Uji perkalian stop loss yang berbeda untuk jarak stop yang ideal.
  3. Uji berbagai pengganda keuntungan untuk menyeimbangkan ukuran dan probabilitas.
  4. Mengoptimalkan periode lookback untuk akurasi yang lebih baik pada tingkat likuiditas.
  5. Tambahkan filter seperti volume untuk meningkatkan waktu masuk.
  6. Masukkan indikator tren untuk menambahkan tren berikut.

Ringkasan

Strategi breakout dalam kisaran bar memanfaatkan ekspansi kisaran dari konsolidasi dengan memasuki ketika harga keluar dari kisaran bar sebelumnya. Tingkat likuiditas menghindari terjebak. Stop loss dan take profit yang masuk akal memungkinkan mengendarai momentum setelah pecah untuk mencapai target keuntungan. Strategi dapat menghasilkan hasil yang baik pada kerangka waktu menengah. Meningkatkan lebih lanjut keuntungan dan ketahanan sistem dapat dicapai melalui optimasi parameter dan peningkatan filter entri.


/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ilikelyrics560

//@version=5
strategy("Inside Bar Range Breakout Strategy", overlay=true)

// Inputs
lookback = input.int(20, "Lookback Period", minval=1)
atrMult = input.float(1.5, "ATR Multiplier", step=0.1)
atrLen = input.int(14, "ATR Length", minval=1)
slMult = input.float(2, "Stop Loss Multiplier", step=0.1)
tpMult = input.float(3, "Take Profit Multiplier", step=0.1)

// Variables
atr = ta.atr(atrLen)
Range = high - low 
insideBar = Range < Range[1]
breakoutUp = close > high[1]
breakoutDown = close < low[1]
liquidityUp = ta.highest(high, lookback)
liquidityDown = ta.lowest(low, lookback)
longEntry = breakoutUp and low > liquidityDown
shortEntry = breakoutDown and high < liquidityUp
longExit = close < low[1] 
shortExit = close > high[1]

// Plotting
plot(liquidityUp, "Liquidity Up", color.new(color.green, 30), 1)
plot(liquidityDown, "Liquidity Down", color.new(color.red, 30), 1)
bgcolor(longEntry ? color.new(color.green, 30) : na, title="Long Entry")
bgcolor(shortEntry ? color.new(color.maroon, 30) : na, title="Short Entry")

// Trading
if (longEntry)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", "Long", stop=low - slMult * atr, limit=high + tpMult * atr)

if (shortEntry)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", "Short", stop=high + slMult * atr, limit=low - tpMult * atr)

Lebih banyak