Strategi Dagangan Berbilang Jangka Masa Penembusan Julat Lanjutan

HTF SMA PIN BAR RSI EMA VOL
Tarikh penciptaan: 2025-02-18 18:08:09 Akhirnya diubah suai: 2025-02-18 18:08:09
Salin: 0 Bilangan klik: 530
1
fokus pada
1617
Pengikut

Strategi Dagangan Berbilang Jangka Masa Penembusan Julat Lanjutan

Gambaran keseluruhan

Ini adalah strategi perdagangan jangka masa yang berbilang berdasarkan teori selang selang grafik. Strategi ini mengidentifikasi peluang perdagangan yang berpotensi dengan menganalisis bentuk grafik dan selang harga dalam tempoh masa yang lebih tinggi.

Prinsip Strategi

Pusat strategi adalah untuk memantau tempoh masa yang lebih tinggi (default 4 jam) apabila harga menembusi julat awal. Secara khusus:

  1. Strategi akan terus menjejaki dan menyimpan data titik tinggi dan rendah pada dua garis K tempoh masa tinggi sebelumnya
  2. Sinyal shorting terbentuk apabila harga penutupan K-line semasa adalah lebih rendah daripada harga tinggi sebelumnya dan K-line semasa adalah tinggi
  3. Apabila harga penutupan K-line semasa lebih tinggi daripada harga penutupan K-line sebelumnya dan inovasi K-line semasa adalah rendah, ia membentuk isyarat berganda
  4. Harga masuk ditetapkan pada titik tinggi dan rendah yang mencetuskan garis K
  5. Sasaran keuntungan yang ditetapkan pada kedudukan tinggi dan rendah yang sesuai pada tempoh sebelumnya
  6. Jarak hentian berubah mengikut saiz selang

Kelebihan Strategik

  1. Analisis kitaran masa berbilang memberikan isyarat yang lebih dipercayai
  2. Tetapan Hentian Kerosakan Dinamis, menyesuaikan diri dengan turun naik pasaran
  3. Mekanisme penapis kuantiti yang boleh dipilih untuk meningkatkan pengesahan transaksi
  4. Antara muka visual yang jelas, termasuk penanda harga pemicu, harga sasaran dan titik henti
  5. Logik strategi ringkas, jelas, mudah difahami dan dilaksanakan
  6. Sesuai untuk pelbagai jenis perdagangan dan keadaan pasaran

Risiko Strategik

  1. Pasaran yang bergolak mungkin menghasilkan isyarat pecah palsu yang kerap
  2. Peningkatan jumlah stop loss yang tinggi boleh menyebabkan kerugian yang berlebihan
  3. Bergantung pada data harga sejarah, mungkin bertindak balas lambat dalam persekitaran pasaran yang berubah dengan cepat
  4. Kesan faktor asas yang tidak dipertimbangkan
  5. Ia mungkin sukar untuk dilaksanakan dengan berkesan dalam pasaran yang kurang cair

Arah pengoptimuman strategi

  1. Memperkenalkan penapis trend seperti purata bergerak atau ADX
  2. Menambah lebih banyak kesesuaian keadaan pasaran
  3. Optimumkan strategi penutupan kerugian, pertimbangkan untuk memperkenalkan penutupan bergerak
  4. Menambah modul pengurusan jumlah transaksi
  5. Pertimbangkan untuk menambah analisis jangka masa yang lebih banyak
  6. Pengenalan penunjuk kadar turun naik untuk mengoptimumkan penghakiman selang

ringkaskan

Ini adalah strategi perdagangan jangka masa yang berstruktur, logik dan jelas. Strategi ini mencari peluang yang berpotensi trend dengan menganalisis tingkah laku harga dalam jangka masa yang lebih tinggi, sambil mengintegrasikan pengurusan risiko dan mekanisme penapisan.

Kod 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)