Strategi penapis julat pengesahan berganda digabungkan dengan kedudukan dinamik ATR dan sistem stop loss mengekor

Range Filter ATR SMA Trailing Stop POSITION SIZING
Tarikh penciptaan: 2025-05-26 14:22:36 Akhirnya diubah suai: 2025-05-26 14:22:36
Salin: 0 Bilangan klik: 311
2
fokus pada
319
Pengikut

Strategi penapis julat pengesahan berganda digabungkan dengan kedudukan dinamik ATR dan sistem stop loss mengekor Strategi penapis julat pengesahan berganda digabungkan dengan kedudukan dinamik ATR dan sistem stop loss mengekor

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan kuantitatif dengan pengunduran rendah yang menggabungkan penapis julat (Range Filter) dan purata gelombang sebenar (Average True Rate (ATR)). Ia mengenal pasti arah trend melalui penapis julat, sambil menggunakan ATR untuk menyesuaikan saiz kedudukan secara dinamik dan menetapkan stop loss, untuk mengawal risiko dengan berkesan. Strategi ini memerlukan harga untuk memecahkan dua kitaran berturut-turut penapis julat sebelum mengukuhkan trend, dan mekanisme pengesahan ganda ini berkesan mengurangkan penipuan palsu.

Prinsip Strategi

Prinsip teras strategi ini adalah menggabungkan trend pengesanan penapis julat dengan sistem pengurusan risiko ATR:

  1. Pengiraan penapis julat:

    • Mulakan dengan mengira purata bergerak mudah (SMA) harga sebagai garisan tengah
    • Ia kemudian mengira purata pergerakan harga yang berpunca daripada nilai mutlak garis pusat ini, sebagai julat pergerakan.
    • Garis atas = garisan tengah + julat pergerakan
    • Garis bawah = garisan tengah - Julat turun naik
  2. Syarat pengesahan trend:

    • Trend menaik: Dua kitaran harga berakhir di atas landasan
    • Trend menurun: Harga ditutup di bawah landasan dua kitaran berturut-turut
    • Mekanisme pengesahan dua kali ini mengurangkan isyarat palsu.
  3. ATR kedudukan dinamik:

    • Menggunakan ATR untuk mengukur turun naik pasaran semasa
    • Rumus untuk mengira kedudukan: (Kedaian akaun * Peratusan risiko) / (ATR * Nilai mata)
    • Semakin besar turun naik pasaran, lebih kecil kedudukan; lebih kecil turun naik, lebih besar kedudukan
  4. Kerugian ATR:

    • Stop loss berbilang kepala ditetapkan sebagai: harga semasa - (ATR * kali ganda)
    • Hentikan Hilang Hilang yang ditetapkan sebagai: harga semasa + (ATR * kelipatan)
    • Apabila harga bergerak ke arah yang menguntungkan, garis hentian akan bergerak dan mengunci keuntungan.

Kelebihan Strategik

  1. Kebolehan menyesuaikan diri:

    • Penapis julat secara automatik menyesuaikan diri dengan ciri-ciri turun naik dalam kitaran pasaran yang berbeza
    • Mekanisme penyesuaian kedudukan ATR membolehkan strategi menyesuaikan diri secara automatik dengan persekitaran yang berbeza
  2. Pengendalian risiko yang cemerlang:

    • Peratusan risiko tetap bagi setiap urus niaga (default 1%)
    • Saiz kedudukan yang disesuaikan dengan pergerakan pasaran
    • Mekanisme penangguhan kerugian yang berkesan mengunci keuntungan dan mengehadkan kerugian
  3. Kualiti isyarat yang tinggi:

    • Mekanisme pengesahan dua kali ((dua kitaran pecah berturut-turut) mengurangkan isyarat palsu
    • Penapis julat berkesan menapis bunyi pasaran dan mengenal pasti trend sebenar
  4. Ciri penarikan rendah:

    • Trailing Stop Machine Hadkan Kerugian Maksimum Perdagangan Tunggal
    • Tetapan parameter risiko konservatif (risiko 1%) mengurangkan pengunduran keseluruhan
    • Kedudukan dinamik secara automatik dikurangkan semasa turun naik yang tinggi, mengurangkan risiko
  5. Transparan dan disesuaikan:

    • Parameter strategi jelas dan logiknya jelas
    • Parameter boleh disesuaikan dengan pasaran yang berbeza dan pilihan risiko peribadi

Risiko Strategik

  1. Pasaran horizontal tidak baik:

    • Dalam pasaran penumpuan tanpa trend, isyarat penembusan palsu boleh berlaku dengan kerap
    • Penyelesaian: Anda boleh menambah penapis trend tambahan atau meningkatkan jumlah kitaran pengesahan
  2. Risiko untuk berbalik:

    • Hentian susulan mungkin tidak dapat digunakan dalam masa yang tepat apabila trend yang kuat tiba-tiba berbalik
    • Penyelesaian: boleh digabungkan dengan peningkatan kadar turun naik atau pengurangan jarak penghentian
  3. Kepekaan Parameter:

    • Pilihan kitaran penapis julat dan ATR mempunyai kesan yang lebih besar terhadap prestasi strategi
    • Penyelesaian: Periksa semula sejarah dan cari kombinasi parameter yang kukuh
  4. Risiko kerugian berterusan:

    • Walaupun risiko dalam setiap urus niaga dikawal dengan baik, satu persatu urus niaga rugi boleh menyebabkan penarikan balik yang lebih besar
    • Penyelesaian: Tetapkan had kerugian maksimum berturut-turut atau tambah penapis keadaan pasaran
  5. Titik tergelincir dan kesan bayaran:

    • Dalam dagangan dalam talian, slippage dan yuran boleh mempengaruhi prestasi strategi dengan ketara
    • Penyelesaian: Menambah yuran yang berpatutan dan anggaran slippage ke dalam pengukuran semula untuk mengekalkan ruang keuntungan yang mencukupi

Arah pengoptimuman strategi

  1. Menambah penapis persekitaran pasaran:

    • Indikator kadar turun naik (seperti Bollinger Bandwidth) boleh diperkenalkan untuk mengenal pasti keadaan pasaran
    • Penangguhan dagangan atau penyesuaian parameter dalam pasaran turun naik rendah atau pasaran penumpuan
    • Ini dapat mengurangkan isyarat palsu di pasaran horizontal dan meningkatkan kadar kemenangan keseluruhan.
  2. Siklus penapis optimum:

    • Pertimbangkan untuk menggunakan kitaran adaptasi dan bukannya kitaran tetap
    • Siklus penapis julat yang boleh disesuaikan secara automatik berdasarkan turun naik pasaran
    • Ini akan menjadikan strategi lebih sesuai untuk pelbagai peringkat pasaran.
  3. Pengenalan pengesahan pelbagai kerangka masa:

    • Meningkatkan syarat pengesahan trend pada jangka masa yang lebih tinggi
    • Hanya berdagang di arah trend utama dan elakkan berdagang di arah berlawanan
    • Ini akan meningkatkan kualiti isyarat dan kadar kemenangan.
  4. Dinamika penyesuaian ATR:

    • Pelbagai ATR yang disesuaikan secara dinamik berdasarkan ciri-ciri turun naik pasaran
    • Penggunaan kelipatan yang lebih kecil dalam pasaran turun naik rendah, penggunaan kelipatan yang lebih besar dalam pasaran turun naik tinggi
    • Ini akan meningkatkan keberkesanan dan fleksibiliti pencegahan kerugian.
  5. Menambah mekanisme keluar berasaskan masa:

    • Tetapkan had tempoh maksimum
    • Jika harga tidak bergerak ke arah yang dijangkakan dalam jangka masa tertentu, penutupan paksa
    • Ini akan mengelakkan wang anda daripada terjebak dalam transaksi yang tidak sah untuk jangka masa yang lama.

ringkaskan

Strategi penapis julat pengesahan ganda yang menggabungkan kedudukan ATR yang dinamik dengan sistem hentian yang diikuti adalah strategi perdagangan kuantitatif yang memberi tumpuan kepada kawalan risiko. Ia mengenal pasti arah trend melalui penapis julat, memerlukan dua kitaran pecah berturut-turut untuk mengesahkan isyarat, menggunakan ATR untuk secara dinamik menyesuaikan saiz kedudukan dan menetapkan hentian yang diikuti, mengawal risiko setiap perdagangan secara berkesan dalam peratusan yang ditetapkan.

Kod sumber strategi
/*backtest
start: 2025-02-01 00:00:00
end: 2025-05-25 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("Range Filter + ATR Strategy (Low Drawdown)", overlay=true, 
     pyramiding=0, default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, commission_type=strategy.commission.percent, 
     commission_value=0.1, initial_capital=10000)

// Input parameters
rangePeriod = input.int(14, title="Range Filter Period")
atrPeriod = input.int(14, title="ATR Period")
riskPercent = input.float(1.0, title="Risk % per Trade", minval=0.1, maxval=5)
useATRSizing = input(true, title="Use ATR Position Sizing")
trailATR = input(1.5, title="Trailing Stop ATR Multiple")

// Calculate Range Filter
src = close
smooth = ta.sma(src, rangePeriod)
filter = ta.sma(math.abs(src - smooth), rangePeriod)
upper = smooth + filter
lower = smooth - filter

// Calculate ATR
atr = ta.atr(atrPeriod)

// Trend direction
upTrend = src > upper and src[1] > upper[1]
downTrend = src < lower and src[1] < lower[1]

// Position sizing based on ATR
atrPositionSize = (strategy.equity * riskPercent/100) / (atr * syminfo.pointvalue)

// Strategy logic
if (upTrend)
    strategy.entry("Long", strategy.long, qty=useATRSizing ? atrPositionSize : na)
    
if (downTrend)
    strategy.entry("Short", strategy.short, qty=useATRSizing ? atrPositionSize : na)

// Corrected trailing stop using trail_offset instead of trail_points
if (strategy.position_size > 0)
    strategy.exit("Long Exit", "Long", trail_price=na, trail_offset=trailATR * atr)
    
if (strategy.position_size < 0)
    strategy.exit("Short Exit", "Short", trail_price=na, trail_offset=trailATR * atr)

// Plotting
plot(upper, color=color.green, title="Upper Range")
plot(lower, color=color.red, title="Lower Range")
plot(smooth, color=color.blue, title="Smooth Line")