Sistem Dagangan Pecah Kemeruapan Berbilang Penunjuk Berdasarkan Perhubungan Volume-Harga

ATR RSI VOLUME BANDS TP/SL BACKTEST FILTER
Tarikh penciptaan: 2025-03-28 15:33:42 Akhirnya diubah suai: 2025-03-28 15:33:42
Salin: 1 Bilangan klik: 373
2
fokus pada
319
Pengikut

Sistem Dagangan Pecah Kemeruapan Berbilang Penunjuk Berdasarkan Perhubungan Volume-Harga Sistem Dagangan Pecah Kemeruapan Berbilang Penunjuk Berdasarkan Perhubungan Volume-Harga

Gambaran keseluruhan

Sistem dagangan pecah kadar turun naik pelbagai indikator berdasarkan hubungan kuantitatif adalah strategi perdagangan kuantitatif yang komprehensif yang menggabungkan pengesanan lonjakan jumlah transaksi, saluran turun naik ATR dan penapisan momentum RSI. Idea teras strategi ini adalah untuk menangkap lonjakan perdagangan yang tiba-tiba di pasaran, menganggapnya sebagai peluang perdagangan yang berpotensi, sambil menggabungkan dinamik harga dan indikator teknikal untuk menapis pelbagai peringkat untuk meningkatkan ketepatan keputusan perdagangan.

Prinsip Strategi

Kaedah ini berdasarkan beberapa modul utama:

  1. Pemeriksaan lonjakan prestasiStrategi pertama mendefinisikan konsep “VolSpike” dengan membandingkan jumlah dagangan semasa dengan jumlah dagangan N baris K sebelumnya, yang dikenali sebagai isyarat lonjakan dagangan apabila jumlah dagangan K semasa melebihi jumlah N baris K sebelumnya. Jumlah dagangan yang tidak normal ini biasanya menandakan perubahan arah yang mungkin berlaku di pasaran.

  2. Saluran kadar turun naik ATRStrategi mengira purata gelombang sebenar (ATR) dan mencipta bands turun naik dan turun naik, sebagai ruang rujukan untuk turun naik harga. Saluran-saluran ini digunakan bukan sahaja untuk memvisualisasikan turun naik pasaran, tetapi juga secara langsung untuk menetapkan kedudukan henti.

  3. RSI penapis dinamikDengan memfilterkan isyarat dagangan dengan indikator yang agak kuat ((RSI), mengelakkan perdagangan dalam keadaan overbought atau oversold yang melampau. Pengguna boleh menetapkan had atas dan bawah RSI, dan strategi hanya akan mempertimbangkan kedudukan apabila nilai RSI berada di antara nilai-nilai ini.

  4. Analisis bentuk KStrategi ini juga menambah analisis bentuk K-line, yang menyaring isyarat K-line yang terlalu panjang dengan mengukur nisbah entiti K-line dengan garis bayangan atas dan bawah, yang membantu mengelakkan masuk ke pasaran yang mungkin berbalik dengan cepat.

  5. Logik pelaksanaan transaksi

    • Apabila terdeteksi lonjakan dalam jumlah transaksi dan memenuhi syarat penapisan RSI dan keperluan bentuk K, strategi akan menentukan arah pembukaan kedudukan berdasarkan kedudukan harga penutupan K berbanding harga pembukaan.
    • Syarat berbilang kepala: harga penutupan lebih besar daripada harga bukaan ((garis matahari) dan garis atas dan bawah tidak melebihi perkadaran maksimum yang ditetapkan.
    • Syarat kosong: harga penutupan kurang daripada harga bukaan (dalam garis hitam) dan garis bawah tidak melebihi perkadaran maksimum yang ditetapkan.
    • Kedudukan hentian ditetapkan di sempadan saluran ATR, dan kedudukan hentian berdasarkan jarak antara harga masuk dan saluran ATR, dengan kelipatan yang ditentukan oleh pengguna.

Kelebihan Strategik

  1. Pengesahan isyarat multidimensiGabungan jumlah dagangan, bentuk harga dan petunjuk teknikal, dengan penapisan pelbagai syarat, meningkatkan kualiti isyarat dagangan dengan ketara, mengurangkan isyarat palsu.

  2. Kebolehan menyesuaikan diriParameter utama strategi seperti kitaran ATR, nilai RSI dan perbandingan jumlah transaksi boleh disesuaikan, membolehkan strategi menyesuaikan diri dengan keadaan pasaran dan jenis perdagangan yang berbeza.

  3. Pengurusan risiko yang lebih baikSetiap dagangan mempunyai seting berhenti dan hentian yang jelas, yang disesuaikan secara dinamik berdasarkan turun naik pasaran (ATR), yang lebih munasabah daripada pengurusan risiko dengan mata atau peratusan tetap.

  4. Isyarat perdagangan visualStrategi: Strategi menunjukkan saluran ATR dan isyarat lonjakan jumlah transaksi secara langsung di carta (ikon roket), yang membantu peniaga memahami keadaan pasaran dan logik strategi secara langsung.

  5. Penapis masuk yang halusDengan menganalisis nisbah K-line dan entiti, mengelakkan kedudukan di K-line yang terlalu bergolak, pemprosesan terperinci ini membantu meningkatkan kadar kejayaan perdagangan.

Risiko Strategik

  1. Risiko berbalikWalaupun strategi ini menggunakan pelbagai mekanisme penapisan, pasaran masih boleh berbalik dengan cepat selepas lonjakan jumlah transaksi, terutamanya dalam berita utama atau peristiwa manipulasi pasaran. Untuk mengurangkan risiko ini, penapisan masa boleh dipertimbangkan untuk meningkatkan dan mengelakkan perdagangan sebelum dan selepas data ekonomi penting dikeluarkan.

  2. Perangkap pengoptimuman parameterStrategi mengandungi pelbagai parameter yang boleh disesuaikan, optimasi berlebihan boleh menyebabkan overfitting, yang menyebabkan strategi tidak berfungsi dengan baik di cakera. Disyorkan untuk menggunakan ujian ke hadapan atau menguji parameter kehandalan pada pelbagai jenis perdagangan.

  3. Risiko kecairanStrategi peningkatan jumlah transaksi yang tiba-tiba mungkin menghasilkan isyarat yang salah di pasaran yang kurang cair. Ia harus digunakan di pasaran yang cukup cair, dan pertimbangkan untuk meningkatkan nilai terhad jumlah transaksi minimum sebagai syarat penapisan tambahan.

  4. Celah Risiko SistemikDalam keadaan pasaran yang tidak menentu atau dalam keadaan risiko sistemik, ATR boleh mengalami penurunan yang teruk. Untuk mengurangkan risiko ini, pertimbangkan untuk menetapkan had kerugian maksimum atau menggunakan strategi pengurusan kedudukan yang lebih konservatif.

  5. Keterbatasan satu kerangka masaStrategi semasa hanya beroperasi pada satu bingkai masa dan mungkin kehilangan maklumat trend penting pada bingkai masa yang lebih besar. Ini boleh menyebabkan keadaan perdagangan berlawanan arah trend utama.

Arah pengoptimuman strategi

  1. Integrasi analisis pelbagai kerangka masaMenggunakan arah trend pada jangka masa yang lebih besar sebagai syarat penapisan, berdagang hanya di arah trend utama, dapat meningkatkan kejayaan strategi secara ketara. Ini boleh dilakukan dengan menambahkan purata bergerak atau indikator trend pada jangka masa yang lebih besar.

  2. Secara dinamik menyesuaikan parameter VolSpikePerbandingan kuantiti basikal yang disesuaikan secara automatik berdasarkan turun naik pasaran. Perbandingan yang lebih panjang digunakan di pasaran turun naik rendah dan lebih pendek digunakan di pasaran turun naik tinggi untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.

  3. Pembelajaran mesin untuk mengoptimumkan kualiti isyarat: Analisis corak lonjakan kuantiti transaksi sejarah dengan pergerakan harga seterusnya melalui algoritma pembelajaran mesin, penilaian kualiti isyarat yang lebih halus, hanya menjalankan isyarat yang mempunyai kebarangkalian tinggi untuk berjaya.

  4. Penambahan penunjuk sentimen pasaranMengintegrasikan indeks turun naik atau penunjuk lebar pasaran seperti VIX, menyesuaikan atau menangguhkan strategi dalam keadaan pasaran yang melampau, dan mengelakkan perdagangan dalam persekitaran yang tidak menentu.

  5. Menerapkan strategi penangguhan dinamikApabila harga bergerak ke arah yang menguntungkan, anda boleh mempertimbangkan untuk melaksanakan strategi untuk menjejaki hentian kerugian atau keuntungan berpecah untuk memaksimumkan potensi keuntungan dan melindungi keuntungan yang telah dicapai.

  6. Modul Pengurusan Wang OptimisStrategi semasa menggunakan peratusan tetap untuk pengurusan kedudukan, boleh mempertimbangkan pengurusan kedudukan dinamik berdasarkan kadar turun naik atau formula Kelly, menyesuaikan celah risiko secara automatik dalam keadaan pasaran yang berbeza.

ringkaskan

Sistem dagangan pergerakan kadar pergerakan pelbagai indikator berdasarkan hubungan kuantitatif adalah strategi dagangan kuantitatif yang tersusun dengan baik, yang membina kerangka keputusan perdagangan bertingkat dengan menggabungkan pengesanan lonjakan kuantitatif, saluran turun naik ATR dan penapisan dinamik RSI. Kelebihan utama strategi ini adalah mekanisme pengesahan isyarat yang komprehensif dan sistem pengurusan risiko yang baik, yang membolehkannya mengawal risiko sambil menangkap peluang pasaran.

Walau bagaimanapun, strategi perdagangan mana pun mempunyai batasan, dan risiko utama strategi ini termasuk risiko pembalikan pasaran, perangkap pengoptimuman parameter, dan keterbatasan satu tempoh masa. Strategi ini mempunyai ruang untuk penambahbaikan yang besar dengan mengintegrasikan analisis pelbagai tempoh masa, menyesuaikan parameter secara dinamik, memperkenalkan pembelajaran mesin dan mengoptimumkan pengurusan dana.

Strategi ini menyediakan kerangka asas yang kukuh untuk peniaga kuantitatif yang mengejar perdagangan sistematik, yang boleh disesuaikan dan dioptimumkan lebih lanjut mengikut keutamaan peribadi dan ciri-ciri pasaran. Akhirnya, kejayaan strategi bergantung kepada pemahaman peniaga tentang pasaran dan penguasaan logik strategi, serta pelaksanaan disiplin yang ketat dan peningkatan strategi yang berterusan.

Kod sumber strategi
/*backtest
start: 2024-03-28 00:00:00
end: 2024-12-31 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("VolSpike ATR RSI Strategy with ATR Bands", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, calc_on_every_tick=false)

//────────────────────────────
// ① User Inputs
//────────────────────────────
// VolSpike reference candle count
barsBack = input.int(7, title="VolSpike - Reference Candle Count", minval=1)

// ATR Band related input values
atrPeriod     = input.int(title="ATR Period", defval=14, minval=1)
atrMultiplier = input.float(title="ATR Band Scale Factor", defval=2.5, step=0.1, minval=0.01)

// RSI related input values and thresholds
rsiPeriod = input.int(title="RSI Period", defval=14, minval=1)
rsiUpper  = input.int(title="RSI Upper Threshold", defval=80, minval=50, maxval=100)
rsiLower  = input.int(title="RSI Lower Threshold", defval=20, minval=0,  maxval=50)

// TP multiplier input: default 1 multiplier (TP = entry price + N times ATR band difference)
tpMultiplier = input.float(title="TP Multiplier", defval=1.0, step=0.1, minval=0.1, tooltip="Determines how many times the difference between the entry price and ATR band is used for TP.")

// Candle wick filter: Maximum allowed wick ratio (body to wick)
maxWickRatio = input.float(title="Max Allowed Wick Ratio", defval=2.0, minval=0.1, step=0.1, tooltip="If the wick length is greater than this ratio compared to the body, no entry will be made.")

//────────────────────────────
// ② VolSpike Calculation (Based on candle close)
//────────────────────────────
var float volSum = na
if bar_index > barsBack
    volSum := 0.0
    for i = 1 to barsBack
        volSum += volume[i]
else
    volSum := na
volSpike = not na(volSum) and (volume > volSum)

//────────────────────────────
// ③ RSI Calculation and Filter (Using user-set RSI thresholds)
//────────────────────────────
rsiVal    = ta.rsi(close, rsiPeriod)
rsiFilter = (rsiVal < rsiUpper) and (rsiVal > rsiLower)

//────────────────────────────
// ⑤ ATR Band Calculation
//────────────────────────────
getBandOffsetSource(srcIn, isUpperBand) =>
    ret = close
    switch srcIn
        "close" => ret := close
        "wicks" => ret := isUpperBand ? high : low
        => ret := close
    ret

// Offset reference is fixed to 'close'
atrSourceRef  = "close"
atrValue      = ta.atr(atrPeriod)
scaledATR     = atrValue * atrMultiplier
upperATRBand  = getBandOffsetSource(atrSourceRef, true)  + scaledATR
lowerATRBand  = getBandOffsetSource(atrSourceRef, false) - scaledATR

// Plot ATR bands on the chart
plot(upperATRBand, title="Upper ATR Band", color=color.rgb(0,255,0,50), linewidth=2)
plot(lowerATRBand, title="Lower ATR Band", color=color.rgb(255,0,0,50), linewidth=2)

//────────────────────────────
// ⑥ Rocket Signal (VolSpike) Display
//────────────────────────────
plotshape(volSpike, title="VolSpike Rocket", location=location.belowbar, style=shape.labelup, text="🚀", color=color.blue, size=size.tiny)

//────────────────────────────
// ⑦ Candle Wick Length Filter Calculation (Applied in reverse)
//────────────────────────────
// Body length (absolute value)
bodyLength = math.abs(close - open)
bodyLength := bodyLength == 0 ? 0.0001 : bodyLength  // Prevent doji
// Long position entry upper wick ratio: (high - close) / bodyLength
longWickRatio = (high - close) / bodyLength
// Short position entry lower wick ratio: (close - low) / bodyLength
shortWickRatio = (close - low) / bodyLength

longWickOK = longWickRatio <= maxWickRatio
shortWickOK = shortWickRatio <= maxWickRatio

//────────────────────────────
// ⑧ Position Entry and Exit Setup
//    - Long: Close of the entry candle > Open → SL = lowerATRBand, TP = entry price + tpMultiplier * (upperATRBand - entry price)
//    - Short: Close of the entry candle < Open → SL = upperATRBand, TP = entry price - tpMultiplier * (entry price - lowerATRBand)
//────────────────────────────
if volSpike and rsiFilter
    // Long position entry (bullish candle) && wick condition met (upper wick)
    if close > open and longWickOK
        longTP = close + tpMultiplier * (upperATRBand - close)
        strategy.entry("Long", strategy.long)
        strategy.exit("Exit Long", from_entry="Long", stop=lowerATRBand, limit=longTP)
    // Short position entry (bearish candle) && wick condition met (lower wick)
    else if close < open and shortWickOK
        shortTP = close - tpMultiplier * (close - lowerATRBand)
        strategy.entry("Short", strategy.short)
        strategy.exit("Exit Short", from_entry="Short", stop=upperATRBand, limit=shortTP)