Strategi Perdagangan Multi-Kerangka Waktu dengan Jangkauan Terobosan Lanjutan

HTF SMA PIN BAR RSI EMA VOL
Tanggal Pembuatan: 2025-02-18 18:08:09 Akhirnya memodifikasi: 2025-02-18 18:08:09
menyalin: 0 Jumlah klik: 530
1
fokus pada
1617
Pengikut

Strategi Perdagangan Multi-Kerangka Waktu dengan Jangkauan Terobosan Lanjutan

Ringkasan

Ini adalah strategi perdagangan periode waktu yang berbasis pada teori interval grafik. Strategi ini terutama digunakan untuk mengidentifikasi peluang perdagangan potensial dengan menganalisis pola grafik dan interval harga dari periode waktu yang lebih tinggi. Strategi ini mengintegrasikan filter volume transaksi dan mekanisme stop loss dinamis untuk menangkap peluang tren dengan menembus titik tinggi dan rendah di periode sebelumnya.

Prinsip Strategi

Inti dari strategi ini adalah periode waktu yang lebih tinggi (default 4 jam) untuk memantau harga yang melintasi kisaran awal.

  1. Strategi akan terus melacak dan menyimpan data titik tinggi dan rendah dari dua garis K periode waktu tinggi sebelumnya
  2. Sebuah sinyal shorting terbentuk ketika harga close-out pada K-line saat ini lebih rendah dari harga high sebelumnya dan saat ini K-line adalah high
  3. Sebuah sinyal multipel terbentuk ketika harga penutupan K-line saat ini lebih tinggi dari harga penutupan K-line sebelumnya dan inovasi K-line saat ini rendah
  4. Harga masuk ditetapkan pada titik tinggi dan rendah yang memicu garis K
  5. Target keuntungan yang ditetapkan pada posisi tinggi dan rendah yang sesuai pada periode sebelumnya
  6. Stop loss distance disesuaikan secara dinamis dengan ukuran interval

Keunggulan Strategis

  1. Analisis siklus waktu ganda memberikan sinyal yang lebih andal
  2. Pengaturan Stop Loss Dinamis, menyesuaikan diri dengan fluktuasi pasar
  3. Mekanisme penyaringan volume transaksi yang dapat dipilih untuk meningkatkan konfirmasi transaksi
  4. Antarmuka visual yang jelas, termasuk tanda harga trigger, harga target, dan stop loss
  5. Logika strategi sederhana dan jelas, mudah dipahami dan diterapkan
  6. Cocok untuk berbagai jenis perdagangan dan lingkungan pasar

Risiko Strategis

  1. Pasar bergoyang di zona mungkin menghasilkan sinyal palsu yang sering terjadi.
  2. Stop loss multiplier yang lebih besar dapat menyebabkan kerugian tunggal yang terlalu besar
  3. Bergantung pada data harga historis, dapat bereaksi lambat dalam lingkungan pasar yang berubah dengan cepat
  4. Tidak mempertimbangkan dampak dari faktor-faktor mendasar
  5. Ini mungkin sulit dilakukan secara efektif di pasar yang kurang likuid

Arah optimasi strategi

  1. Memperkenalkan filter tren, seperti moving average atau indikator ADX
  2. Menambahkan lebih banyak kriteria penilaian pasar
  3. Optimalkan strategi stop loss, pertimbangkan untuk memperkenalkan stop loss mobile
  4. Menambahkan Modul Manajemen Volume
  5. Pertimbangkan untuk menambahkan lebih banyak analisis jangka waktu
  6. Memperkenalkan indikator volatilitas untuk mengoptimalkan penilaian interval

Meringkaskan

Ini adalah strategi perdagangan multi-siklus yang terstruktur, logis, dan jelas. Strategi ini mencari peluang tren potensial dengan menganalisis perilaku harga dalam siklus waktu yang lebih tinggi, sambil mengintegrasikan manajemen risiko dan mekanisme penyaringan. Keunggulan inti dari strategi ini adalah fleksibilitas dan skalabilitasnya, yang dapat disesuaikan dengan berbagai lingkungan pasar dengan penyesuaian parameter yang sederhana.

Kode Sumber Strategi
/*backtest
start: 2025-01-18 00:00:00
end: 2025-02-17 00:00:00
period: 6h
basePeriod: 6h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Candle Range Theory Strategy", overlay=true)

// Input parameters
var string HTF = input.timeframe("240", "Higher Timeframe (Minutes)")  // 4H default
var float stopLossMultiplier = input.float(1.5, "Stop Loss Multiplier", minval=0.5)
var bool useVolFilter = input.bool(false, "Use Volume Filter")
var float volThreshold = input.float(1.5, "Volume Threshold Multiplier", minval=1.0)

// Function to get higher timeframe data
getHtfData(src) =>
    request.security(syminfo.tickerid, HTF, src)

// Calculate volume condition once per bar
var bool volCondition = true
if useVolFilter
    float vol = getHtfData(volume)
    float avgVol = ta.sma(vol, 20)
    volCondition := vol > avgVol * volThreshold

// Get HTF candle data
htf_open = getHtfData(open)
htf_high = getHtfData(high)
htf_low = getHtfData(low)
htf_close = getHtfData(close)

// Store previous candle data
var float h1 = na  // High of Candle 1
var float l1 = na  // Low of Candle 1
var float h2 = na  // High of Candle 2
var float l2 = na  // Low of Candle 2
var float prevClose = na

// Track setup conditions
var string setupType = na
var float triggerLevel = na
var float targetLevel = na
var float stopLevel = na

// Update candle data - fixed time function usage
var bool isNewBar = false
isNewBar := ta.change(request.security(syminfo.tickerid, HTF, time)) != 0

if isNewBar
    h1 := h2
    l1 := l2
    h2 := htf_high[1]
    l2 := htf_low[1]
    prevClose := htf_close[1]

    // Identify setup conditions
    if not na(h1) and not na(h2) and not na(prevClose)
        if (h2 > h1 and prevClose < h1)  // Short setup
            setupType := "short"
            triggerLevel := l2
            targetLevel := l1
            stopLevel := h2 + (h2 - l1) * stopLossMultiplier
        else if (l2 < l1 and prevClose > l1)  // Long setup
            setupType := "long"
            triggerLevel := h2
            targetLevel := h1
            stopLevel := l2 - (h1 - l2) * stopLossMultiplier
        else
            setupType := na
            triggerLevel := na
            targetLevel := na
            stopLevel := na

// Entry conditions using pre-calculated volume condition - fixed line breaks
bool longCondition = setupType == "long" and high > triggerLevel and not na(triggerLevel) and volCondition
bool shortCondition = setupType == "short" and low < triggerLevel and not na(triggerLevel) and volCondition

// Execute trades
if longCondition
    strategy.entry("Long", strategy.long, comment="Long Entry")
    strategy.exit("Long Exit", "Long", limit=targetLevel, stop=stopLevel)

if shortCondition
    strategy.entry("Short", strategy.short, comment="Short Entry")
    strategy.exit("Short Exit", "Short", limit=targetLevel, stop=stopLevel)

// Plot signals - fixed plotshape parameters
plotshape(series=longCondition, title="Long Signal", location=location.belowbar, color=color.green, style=shape.triangleup)
plotshape(series=shortCondition, title="Short Signal", location=location.abovebar, color=color.red, style=shape.triangledown)

plot(triggerLevel, "Trigger Level", color=color.yellow, style=plot.style_circles)
plot(targetLevel, "Target Level", color=color.blue, style=plot.style_circles)
plot(stopLevel, "Stop Level", color=color.red, style=plot.style_circles)