
Strategi ATR Berkali-kali Bersalib adalah sistem perdagangan kuantitatif berdasarkan salib rata-rata bergerak dan purata gelombang sebenar rata-rata (ATR). Strategi ini menentukan isyarat masuk melalui salib rata-rata bergerak sederhana (SMA) jangka pendek dan jangka panjang, sambil menggunakan ATR secara dinamik untuk mengira hentian, hentian dan mengesan tahap hentian untuk automasi dan ketepatan pengurusan risiko. Strategi ini direka untuk akaun dengan modal permulaan \( 25,000, dengan keuntungan sasaran \) 4,167 setiap hari, dan untuk mengimbangi keuntungan dan risiko melalui kawalan kedudukan dinamik.
Prinsip utama strategi ini adalah gabungan antara isyarat silang indikator teknikal dan sistem pengurusan risiko dinamik:
Isyarat masuk dihasilkan:
Pengiraan parameter risiko dinamik:
Mekanisme pengeluaran:
Pelaksanaan dan pemberitahuan urus niaga:
Strategi ini memberi tumpuan khusus kepada nisbah risiko / keuntungan, menggunakan nisbah keuntungan / risiko 3: 1.5 (TP: SL), mengikuti prinsip pengurusan risiko yang baik.
Ketabahan risiko dinamik:
Peraturan masuk dan keluar yang jelas:
Kerangka Pengurusan Risiko yang Lengkap:
Automasi yang tinggi:
Pembantu visual:
Isyarat palsu pasaran yang bergolak:
Sensitiviti parameter ATR:
Risiko pembalikan arah aliran:
Cabaran Pengurusan Dana:
Risiko pelaksanaan slip:
Pengoptimuman isyarat masuk:
Penyesuaian parameter:
Optimumkan pengurusan kedudukan:
Pengesuaian dasar tempoh masa:
Analisis struktur pasaran bersepadu:
Strategi persilangan ATR berganda adalah sistem perdagangan kuantitatif yang menggabungkan analisis teknikal klasik dengan pengurusan risiko moden. Kelebihan utamanya adalah menyesuaikan parameter risiko secara dinamik melalui ATR, membolehkan strategi menyesuaikan diri dengan keadaan pasaran yang berbeza. Strategi ini sangat sesuai untuk pasaran yang relatif stabil dan jelas bergaya, menghasilkan isyarat perdagangan melalui persilangan purata bergerak yang mudah, sambil memastikan setiap perdagangan mempunyai parameter kawalan risiko yang telah ditentukan.
Walaupun terdapat risiko seperti isyarat palsu dan sensitiviti parameter pasaran yang bergolak, arah pengoptimuman yang dikemukakan di atas, seperti pengintegrasian penunjuk pengesahan tambahan, penyesuaian parameter yang sesuai dan pengendalian kedudukan yang dioptimumkan, dapat meningkatkan kestabilan dan kesesuaian strategi secara signifikan. Akhirnya, strategi ini memberikan kerangka perdagangan yang menyeimbangkan kesederhanaan dan keberkesanan, sesuai sebagai model asas untuk perdagangan sistematik, dan dapat disesuaikan dan dioptimumkan lebih lanjut berdasarkan keperluan individu dan ciri-ciri pasaran.
/*backtest
start: 2024-07-17 00:00:00
end: 2025-07-15 08:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":200000}]
*/
//@version=5
strategy("MYM Strategy for TradersPost", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Inputs ===
atrLength = input.int(14, "ATR Length")
slMultiplier = input.float(1.5, "Stop Loss Multiplier")
tpMultiplier = input.float(3.0, "Take Profit Multiplier")
tsMultiplier = input.float(1.0, "Trailing Stop Multiplier")
// === ATR Calculation ===
atr = ta.atr(atrLength)
stopPts = atr * slMultiplier
takePts = atr * tpMultiplier
trailPts = atr * tsMultiplier
// === Example Entry Logic (crossover example) ===
shortSMA = ta.sma(close, 14)
longSMA = ta.sma(close, 28)
longCondition = ta.crossover(shortSMA, longSMA)
shortCondition = ta.crossunder(shortSMA, longSMA)
// === Example Exit Condition (optional close signal) ===
exitCondition = ta.cross(close, ta.sma(close, 10))
// === Entry & Alerts ===
if (longCondition)
// Build JSON message
stopVal = str.tostring(close - stopPts)
tpVal = str.tostring(close + takePts)
trailVal = str.tostring(trailPts)
longMessage = '{"action":"buy","symbol":"MYM","quantity":1,"order_type":"market","stop_loss":' + stopVal + ',"take_profit":' + tpVal + ',"trailing_stop":' + trailVal + ',"comment":"MYM Long Entry"}'
alert(longMessage, alert.freq_once_per_bar_close)
strategy.entry("Long", strategy.long)
if (shortCondition)
stopVal = str.tostring(close + stopPts)
tpVal = str.tostring(close - takePts)
trailVal = str.tostring(trailPts)
shortMessage = '{"action":"sell","symbol":"MYM","quantity":1,"order_type":"market","stop_loss":' + stopVal + ',"take_profit":' + tpVal + ',"trailing_stop":' + trailVal + ',"comment":"MYM Short Entry"}'
alert(shortMessage, alert.freq_once_per_bar_close)
strategy.entry("Short", strategy.short)
// === Optional Close Alert ===
if (exitCondition)
closeMessage = '{"action":"close_position","ticker":"MYM","comment":"MYM Close Position"}'
alert(closeMessage, alert.freq_once_per_bar_close)
strategy.close_all(comment="Exit Signal")
// === Visual aids ===
plot(shortSMA, color=color.orange)
plot(longSMA, color=color.blue)