
Strategi pemantauan trend berdasarkan rentang pelepasan rentang pelepasan rentang pelepasan rentang pelepasan rentang pelepasan ATR dinamik adalah sistem perdagangan kuantitatif berdasarkan rentang pelepasan harga yang menggabungkan indikator teknikal seperti SMA, STDEV, dan ATR dengan bijak untuk mengenal pasti trend pasaran dan perdagangan dengan membina pergerakan turun naik. Strategi isyarat ini berpusat pada membina saluran harga yang dinamik melalui gabungan rentang pelepasan dan pelepasan pelepasan, dan menggunakan ATR dinamik untuk menyesuaikan tahap pelepasan, sambil menyediakan pilihan pelepasan yang fleksibel, yang membolehkan strategi untuk mengekalkan kesesuaian dalam pelbagai persekitaran pasaran.
Mekanisme operasi strategi ini adalah berdasarkan beberapa langkah utama:
Pengiraan penapis julatPertama, strategi menggunakan purata bergerak sederhana (SMA) sebagai garis tengah, dan kemudian mengira jalur turun naik berdasarkan perbezaan piawai harga. Jalur atas = SMA + kali × perbezaan piawai; Jalur bawah = SMA - kali × perbezaan piawai. Kaedah ini dapat menyesuaikan lebar saluran mengikut dinamik turun naik pasaran.
Pengenalan TrendStrategi ini dikenali sebagai trend naik apabila harga menembus tren tinggi; strategi ini dikenali sebagai trend menurun apabila harga menembus tren rendah. Kaedah ini membantu menyaring bunyi pasaran.
Syarat kemasukan: Apabila harga menembusi ke atas dari bawah dan sebelum ini tidak dalam trend menaik, isyarat melakukan lebih; Apabila harga menembusi ke bawah dari atas dan sebelum ini tidak dalam trend menurun, isyarat melakukan kosong.
Strategi keluarStrategi ini menawarkan dua pilihan:
Pengurusan kedudukanStrategi: Menggunakan kaedah pengurusan kedudukan berdasarkan peratusan hak milik akaun, secara lalai berdagang dengan hak milik akaun 100%.
Kelebihan utama strategi ini adalah kesesuaian sendiri, yang membolehkan parameter strategi disesuaikan secara automatik dengan turun naik pasaran dengan menggabungkan garis rata-rata, standard deviation, dan ATR, untuk mengekalkan prestasi yang baik dalam keadaan pasaran yang berbeza.
Setelah analisis yang mendalam terhadap kod, strategi ini mempunyai kelebihan yang ketara:
Kebolehan menyesuaikan diriStrategi menggunakan dinamika standard deviasi untuk menyesuaikan lebar saluran, membolehkan penyesuaian automatik dalam pasaran yang bergelombang tinggi dan rendah, mengelakkan strategi parameter tetap tidak berfungsi dalam keadaan pasaran yang berbeza.
Pengurusan risiko yang lebih baikStrategi ini mengintegrasikan mekanisme hentian dan hentian dinamik berasaskan ATR, yang menjadikan kawalan risiko lebih tepat dan munasabah, dan tahap hentian dan hentian akan disesuaikan secara automatik dengan perubahan turun naik pasaran.
Kualiti isyarat daganganMelalui mekanisme pengesahan trend, strategi dapat menyaring dengan berkesan isyarat pecah palsu, meningkatkan kadar kejayaan perdagangan. Isyarat perdagangan hanya akan dicetuskan apabila ia pecah ke atas / ke bawah dan tidak berada dalam trend yang sesuai sebelumnya.
Strategi Keluar yang FleksibelIa menawarkan dua pilihan, stop loss dan trailing stop, yang membolehkan peniaga memilih cara keluar yang sesuai mengikut keutamaan risiko dan penilaian pasaran mereka.
Keputusan Pembantu VisualStrategi memberikan penglihatan yang jelas mengenai trajectori ke atas dan ke bawah, garis rata-rata, dan tahap stop loss, membantu peniaga memahami keadaan pasaran dan prestasi strategi secara langsung.
Optimasi parameter ruang yang besarStrategi menyediakan pelbagai parameter yang boleh disesuaikan, termasuk panjang penapis julat, kelipatan, panjang ATR, dan kelipatan stop loss, yang membolehkan peniaga mengoptimumkan sasaran mengikut pasaran dan jenis perdagangan yang berbeza.
Walaupun strategi ini direka dengan baik, terdapat risiko yang berpotensi:
Kepekaan ParameterPrestasi strategi adalah sensitif terhadap parameter, terutamanya panjang dan kelipatan penapis julat. Parameter yang tidak sesuai boleh menyebabkan perdagangan berlebihan atau kehilangan keadaan penting. Penyelesaian adalah dengan mencari kombinasi parameter yang stabil dalam keadaan pasaran yang berbeza dengan mengesan semula.
Risiko pembalikan arah aliranUntuk mengurangkan risiko ini, anda boleh mempertimbangkan pengesahan isyarat yang digabungkan dengan petunjuk pembalikan trend lain.
Pasaran rendah tidak berkesanStrategi ini mungkin menghasilkan lebih banyak isyarat palsu dalam pasaran yang berkurangan panjang atau rendah. Adalah disyorkan untuk meningkatkan pengganda penapis atau menambah syarat penapis perdagangan tambahan dengan sewajarnya dalam persekitaran pasaran seperti itu.
Risiko tergelincirDalam tempoh kurang kecairan atau turun naik yang tinggi dalam pasaran, harga pelaksanaan penutupan sebenar mungkin jauh dari jangkaan. Anda boleh menyesuaikan jarak penutupan dengan menetapkan tahap penutupan yang lebih konservatif atau mempertimbangkan faktor turun naik pasaran.
Risiko yang terlalu optimumOleh kerana strategi menyediakan banyak parameter yang boleh dioptimumkan, terdapat risiko terlalu sesuai dengan data sejarah. Penyelesaian adalah dengan menggunakan ujian luar sampel dan pengujian ke hadapan untuk mengesahkan kestabilan strategi.
Berdasarkan analisis kod, strategi ini boleh dioptimumkan dalam beberapa arah:
Bergabung dengan penapis persekitaran pasaranIa boleh memperkenalkan mekanisme penilaian keadaan pasaran tambahan, seperti indikator kadar turun naik (seperti nilai relatif VIX atau ATR) untuk menentukan kombinasi parameter yang sesuai untuk pasaran semasa, dan bahkan boleh mempertimbangkan parameter penyesuaian dinamik dalam keadaan pasaran yang berbeza. Ini dilakukan kerana parameter terbaik dalam keadaan pasaran yang berbeza sering berbeza secara ketara.
Meningkatkan mekanisme pengesahan trendIa boleh digabungkan dengan petunjuk trend lain (seperti ADX, MACD, dll.) sebagai pengesahan tambahan, meningkatkan ketepatan penilaian trend. Ini dapat mengurangkan isyarat palsu dalam pasaran yang bergolak.
Pengurusan wang yang optimumStrategi semasa menggunakan peratusan hak milik akaun tetap untuk berdagang. Pengurusan kedudukan berdasarkan kadar turun naik atau risiko yang disesuaikan, seperti formula Kelly atau kaedah skor tetap, boleh dipertimbangkan untuk mendapatkan kurva pertumbuhan modal yang lebih baik.
Tambahkan penapis masaAnda boleh menambah syarat penapisan masa perdagangan untuk mengelakkan pergerakan pasaran yang lebih besar atau kekurangan kecairan, seperti pengumuman data kewangan atau masa bukaan / penutupan pasaran.
Analisis pelbagai kerangka masaMemperkenalkan mekanisme pengesahan pelbagai jangka masa, seperti meminta arah trend pada jangka masa yang lebih besar untuk selaras dengan arah perdagangan, untuk meningkatkan kadar kejayaan perdagangan. Kaedah ini dapat menyaring dengan berkesan isyarat kemenangan rendah untuk trend besar yang berbalik.
Memperbaiki mekanisme keluarAnda boleh mempertimbangkan untuk menyesuaikan kadar hentian dan kerugian secara dinamik dengan keadaan pasaran yang bergelombang, atau menambah mekanisme pengambilan keuntungan (seperti keuntungan berpecah) untuk tidak ketinggalan keadaan besar sambil mengekalkan kadar kemenangan yang tinggi.
Strategi pemantauan trend dengan penapisan julat penyaringan penyaringan julat penyaringan ATR dinamik adalah sistem perdagangan kuantitatif yang tersusun dengan baik dan logik yang jelas, yang mengenal pasti trend melalui saluran dinamik yang dibina dengan garis rata-rata dan standard deviasi, dan digabungkan dengan ATR untuk pengurusan risiko yang tepat. Ciri utama strategi ini adalah mekanisme kawalan risiko yang beradaptasi dan sempurna, yang membolehkannya untuk mengekalkan prestasi yang stabil dalam pelbagai persekitaran pasaran.
Strategi ini mempunyai potensi untuk mendapatkan keuntungan yang stabil dalam pasaran yang sedang tren dengan parameter yang ditetapkan dengan munasabah dan langkah-langkah pengoptimuman yang mungkin. Walau bagaimanapun, apabila menggunakan strategi ini, peniaga harus memperhatikan kestabilan pengoptimuman parameter, mengelakkan penyesuaian berlebihan, dan membuat penyesuaian yang disasarkan berdasarkan ciri-ciri varieti perdagangan sebenar.
Secara keseluruhannya, ini adalah rangka kerja strategi kuantitatif yang direka dengan baik dan berfungsi dengan baik, sesuai untuk digunakan dan dioptimumkan lebih jauh di pasaran nyata oleh peniaga yang mempunyai pengalaman perdagangan kuantitatif.
/*backtest
start: 2024-05-26 00:00:00
end: 2025-05-25 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Optimized Range Filter Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)
// Optimization Inputs
length = input.int(14, title="Range Filter Length", minval=5, maxval=50)
mult = input.float(2.0, title="Range Filter Multiplier", minval=0.5, maxval=3, step=0.1)
atrLength = input.int(14, title="ATR Length", minval=5, maxval=20)
tpMultiplier = input.float(1.5, title="Take Profit Multiplier", minval=0.5, maxval=3, step=0.1)
slMultiplier = input.float(1.0, title="Stop Loss Multiplier", minval=0.5, maxval=3, step=0.1)
useTrailing = input.bool(true, title="Use Trailing Stop")
trailOffset = input.float(1.5, title="Trailing Stop Offset (ATR Multiplier)", minval=0.5, maxval=3, step=0.1)
// Range Filter Calculation
src = close
smooth = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = smooth + dev
lower = smooth - dev
// ATR Calculation
atr = ta.atr(atrLength)
// Trend Direction
var bool uptrend = na
var bool downtrend = na
uptrend := close > upper and (na(uptrend[1]) or uptrend[1])
downtrend := close < lower and (na(downtrend[1]) or downtrend[1])
// Entry Conditions
longCondition = ta.crossover(close, upper) and not uptrend[1]
shortCondition = ta.crossunder(close, lower) and not downtrend[1]
// Exit Conditions
takeProfitLong = strategy.position_avg_price + (atr * tpMultiplier)
stopLossLong = strategy.position_avg_price - (atr * slMultiplier)
takeProfitShort = strategy.position_avg_price - (atr * tpMultiplier)
stopLossShort = strategy.position_avg_price + (atr * slMultiplier)
// Strategy Execution
if (longCondition)
strategy.entry("Long", strategy.long)
if not useTrailing
strategy.exit("Exit Long", "Long", limit=takeProfitLong, stop=stopLossLong)
else
strategy.exit("Trail Long", "Long", trail_points=atr * trailOffset, trail_offset=atr * trailOffset)
if (shortCondition)
strategy.entry("Short", strategy.short)
if not useTrailing
strategy.exit("Exit Short", "Short", limit=takeProfitShort, stop=stopLossShort)
else
strategy.exit("Trail Short", "Short", trail_points=atr * trailOffset, trail_offset=atr * trailOffset)
// Plotting
plot(upper, color=color.new(color.green, 50), title="Upper Range")
plot(lower, color=color.new(color.red, 50), title="Lower Range")
plot(smooth, color=color.new(color.blue, 50), title="Smooth Line")
// Plot TP/SL levels when in position
plot(strategy.position_size > 0 and not useTrailing ? takeProfitLong : na, color=color.green, style=plot.style_circles, linewidth=2, title="TP Long")
plot(strategy.position_size > 0 and not useTrailing ? stopLossLong : na, color=color.red, style=plot.style_circles, linewidth=2, title="SL Long")
plot(strategy.position_size < 0 and not useTrailing ? takeProfitShort : na, color=color.red, style=plot.style_circles, linewidth=2, title="TP Short")
plot(strategy.position_size < 0 and not useTrailing ? stopLossShort : na, color=color.green, style=plot.style_circles, linewidth=2, title="SL Short")