Strategi keuntungan berarah kawalan risiko SMMA silang ATR dua hala

SMMA ATR TP SL
Tarikh penciptaan: 2025-02-19 10:59:14 Akhirnya diubah suai: 2025-02-19 10:59:14
Salin: 7 Bilangan klik: 389
1
fokus pada
1617
Pengikut

Strategi keuntungan berarah kawalan risiko SMMA silang ATR dua hala

Gambaran keseluruhan

Ini adalah strategi pengesanan trend dua arah berdasarkan SMMA (Smooth Moving Average). Strategi ini menggunakan harga dan persilangan SMMA untuk menghasilkan isyarat kosong dan menggabungkan ATR dengan stop loss dinamik dan sasaran keuntungan tetap untuk menguruskan risiko dan keuntungan. Strategi ini direka bentuk dengan ringkas dan berkesan, sesuai untuk perdagangan pengesanan trend dalam tempoh masa yang berbeza.

Prinsip Strategi

Inti strategi adalah untuk menangkap perubahan trend melalui 17 kitaran SMMA dengan persilangan harga. Apabila harga melintasi SMMA, buka kedudukan overhead; Apabila harga melintasi SMMA, buka kedudukan overhead. Pengurusan keluar menggunakan mekanisme tiga: 1) Hentian dinamik ATR berdasarkan ATR, yang ditetapkan sebagai 0.75 kali ATR SMMA ke bawah; 2) sasaran keuntungan tetap, dengan overhead pada 1150 dan overhead pada 1500; 3) reverse crossover signal flat position.

Kelebihan Strategik

  1. Sistem isyarat stabil dan boleh dipercayai: SMMA lebih lancar daripada purata bergerak sederhana, dapat mengurangkan isyarat palsu dengan berkesan
  2. Pengurusan risiko menyeluruh: menggabungkan ATR dengan sasaran stop loss dan keuntungan tetap yang dinamik, untuk menyesuaikan diri dengan perubahan turun naik pasaran dan mengunci keuntungan yang wajar
  3. Perdagangan dua hala: Mengambil peluang dua hala pasaran dan meningkatkan kecekapan penggunaan dana
  4. Skala yang kuat: kerangka strategi yang jelas dan mudah dilaksanakan dalam pelbagai pasaran dan tempoh masa
  5. Peraturan operasi jelas: syarat masuk dan keluar objektif, mengurangkan gangguan yang disebabkan oleh penilaian subjektif

Risiko Strategik

  1. Risiko pasaran goyah: Perdagangan yang kerap dalam pasaran goyah boleh menyebabkan kerugian
  2. Risiko tergelincir: sasaran keuntungan dalam mata tetap mungkin menghadapi tergelincir dalam pasaran pantas
  3. Risiko trend reversal: ATR stop loss mungkin tidak cukup cepat apabila trend yang kuat tiba-tiba berbalik
  4. Bergantung kepada parameter: Pilihan kitaran SMMA dan kelipatan ATR mempunyai kesan yang lebih besar terhadap prestasi strategi
  5. Risiko pengurusan wang: Posisi peratusan tetap mungkin tidak fleksibel dengan perubahan turun naik

Arah pengoptimuman strategi

  1. Memperkenalkan penapis kekuatan trend: penapisan trend kuat boleh ditambah dengan penunjuk seperti ADX, mengurangkan isyarat palsu pasaran yang bergolak
  2. Matlamat keuntungan yang dinamik: pertimbangkan untuk menggunakan ATR untuk menyesuaikan sasaran keuntungan secara dinamik untuk menyesuaikan diri dengan keadaan pasaran
  3. Pengurusan kedudukan yang lebih baik: memperkenalkan kedudukan kedudukan yang bertimbangan turun naik, mengoptimumkan kecekapan penggunaan dana
  4. Pengesahan jangka masa yang lebih panjang: meningkatkan pengesahan trend jangka masa yang lebih panjang, meningkatkan kualiti transaksi
  5. Kesesuaian dengan keadaan pasaran: menambah logik penilaian jenis pasaran, menyesuaikan parameter strategi dalam keadaan pasaran yang berbeza

ringkaskan

Ini adalah strategi trend-following yang direka dengan wajar, menangkap trend melalui SMMA, menggunakan ATR untuk mengawal risiko, dan menguruskan keuntungan dengan matlamat keuntungan tetap. Logik strategi jelas, pelaksanaan mudah, dengan kebolehgunaan dan skalabiliti yang baik. Walaupun mungkin kurang baik dalam pasaran yang bergolak, tetapi dengan arah pengoptimuman yang disarankan, kestabilan dan kebolehpasaran strategi dapat ditingkatkan lagi.

Kod sumber strategi
/*backtest
start: 2024-02-20 00:00:00
end: 2025-02-17 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMMA 17 Crossover Strategy (Long & Short, ATR SL & Fixed TP)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)

// 🚀 SMMA Calculation
smmaLength = 17
smma = 0.0
smma := na(smma[1]) ? ta.sma(close, smmaLength) : (smma[1] * (smmaLength - 1) + close) / smmaLength

// 📈 ATR Calculation (For Dynamic Stop-Loss)
atrLength = 14
atr = ta.rma(ta.tr(true), atrLength)

// 🔥 Long Entry Condition
longCondition = ta.crossover(close, smma)  // ✅ Price crosses above SMMA

// 🔄 Long Exit Condition
longExit = ta.crossunder(close, smma)  // ✅ Price crosses below SMMA

// 📉 ATR-Based Stop-Loss (Dynamic) for Long
longStopLoss = smma - (atr * 0.75)  // ✅ Stop Loss below SMMA

// 🏆 Fixed Take Profit for Long (1150 Points)
var float longEntryPrice = na
var float longTakeProfit = na
if longCondition
    longEntryPrice := close
    longTakeProfit := longEntryPrice + 1150  // ✅ TP 1150 points above entry

// 🔥 Short Entry Condition
shortCondition = ta.crossunder(close, smma)  // ✅ Price crosses BELOW SMMA (Short trade)

// 🔄 Short Exit Condition
shortExit = ta.crossover(close, smma)  // ✅ Price crosses ABOVE SMMA (Close Short trade)

// 📉 ATR-Based Stop-Loss (Dynamic) for Short
shortStopLoss = smma + (atr * 0.75)  // ✅ Stop Loss above SMMA

// 🏆 Fixed Take Profit for Short (1500 Points) - Updated from 2000
var float shortEntryPrice = na
var float shortTakeProfit = na
if shortCondition
    shortEntryPrice := close
    shortTakeProfit := shortEntryPrice - 1500  // ✅ TP 1500 points below entry (Updated)

// 📊 Plot SMMA (For Visualization)
plot(smma, title="SMMA (17)", color=color.blue)

// 🚀 Long Entry (Allow Multiple)
if longCondition
    strategy.entry("Long", strategy.long)

// 🛑 Long Exit Conditions (Whichever Comes First)
strategy.exit("Long TP/SL", from_entry="Long", stop=longStopLoss, limit=longTakeProfit)
if longExit
    strategy.close("Long")

// 🚀 Short Entry (Allow Multiple)
if shortCondition
    strategy.entry("Short", strategy.short)

// 🛑 Short Exit Conditions (Whichever Comes First)
strategy.exit("Short TP/SL", from_entry="Short", stop=shortStopLoss, limit=shortTakeProfit)
if shortExit
    strategy.close("Short")