
Strategi ini menggunakan pemikiran trailing stop yang dinamis, berdasarkan ATR dan nilai tertinggi harga untuk menghitung garis stop posisi pendek dan panjang. Bergabung dengan pemikiran Chandelier Exit, berdasarkan arah garis stop untuk menilai arah posisi pendek dan panjang.
Strategi ini memiliki fungsi ganda untuk menilai sinyal stop loss dan entry.
Strategi ini terdiri dari beberapa bagian utama:
ATR berdasarkan siklus panjang dan kelipatan mult yang ditetapkan oleh pengguna, ATR dihitung secara real time. Lalu, stop loss jangka panjang dan pendek dihitung berdasarkan ATR dan harga maksimum:
longStop = 最高价 - ATR
shortStop = 最低价 + ATR
Bandingkan garis stop loss dari garis K sebelumnya dengan garis stop loss dari garis K saat ini. Jika garis stop loss dari garis K saat ini terobosan, sinyal perdagangan akan dikirim:
长仓止损线上方突破,做多
短仓止损线下方突破,做空
Dari ATR, stop loss distance dan stop loss distance dihitung berdasarkan RRR yang ditetapkan pengguna. Anda juga dapat mengatur stop loss dan stop loss saat membuka posisi.
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini mengadopsi jalur stop loss yang dilacak secara dinamis, yang memungkinkan stop loss dan pengendalian risiko penurunan.
Garis Stop Loss ini juga digunakan sebagai kriteria untuk masuk dan menyederhanakan logika strategi.
Mengambil keuntungan yang lebih besar sesuai dengan rasio risiko/pengembalian yang ditetapkan.
Strategi ini dibuat dengan struktur yang sederhana, mudah dipahami dan dioptimalkan untuk ekspansi.
Strategi ini juga memiliki beberapa risiko:
Strategi ini adalah strategi perdagangan bilateral dengan risiko over dan under.
Pengaturan parameter ATR secara langsung mempengaruhi garis stop loss dan frekuensi perdagangan. Pengaturan yang salah dapat menyebabkan stop loss terlalu longgar atau frekuensi perdagangan terlalu tinggi.
Strategi ini lebih cocok untuk situasi yang terjadi setelah perhitungan garis rata-rata dan tidak cocok untuk situasi yang terlalu kuat.
Untuk mengatasi risiko di atas, Anda dapat mengoptimalkan:
Menggabungkan indikator tren seperti MA untuk menilai tren pasar dan menghindari perdagangan berlawanan arah.
Optimalkan parameter ATR dan RRR untuk membuat stop loss dan stop loss lebih masuk akal.
Meningkatkan kondisi penyaringan volume atau indikator volatilitas untuk memastikan kualitas transaksi.
Strategi ini masih bisa dioptimalkan lebih jauh:
Menggunakan model pembelajaran mesin untuk memprediksi tren harga, meningkatkan akurasi masuk.
Menggunakan volatilitas harga varietas hedging opsi untuk membangun portofolio risiko bebas.
Arbitrage statistik antara pasar yang berbeda dan varietas yang berbeda menghasilkan Alpha yang stabil.
Melalui mesin perdagangan algoritmik untuk melakukan strategi yang efisien dan real-time trading.
Dalam artikel ini, kami menganalisis strategi perdagangan kuantitatif yang didasarkan pada stop loss pelacakan dinamis. Strategi ini memiliki manajemen stop loss dan penilaian sinyal perdagangan, yang dapat mengontrol risiko secara efektif. Kami juga menganalisis kelebihan strategi, risiko yang mungkin ada, dan ide-ide pengoptimalan selanjutnya.
/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Chandelier Exit with 1-to-1 Risk-Reward", shorttitle='CE', overlay=true)
// Chandelier Exit Logic
length = input.int(title='ATR Period', defval=22)
mult = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
useClose = input.bool(title='Use Close Price for Extremums', defval=true)
atr = mult * ta.atr(length)
longStop = (useClose ? ta.highest(close, length) : ta.highest(length)) - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop
shortStop = (useClose ? ta.lowest(close, length) : ta.lowest(length)) + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop
var int dir = 1
dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir
// Risk-Reward Ratio
riskRewardRatio = input.int(1, title="Risk-Reward Ratio", minval=1, maxval=10, step=1)
// Calculate Take Profit and Stop Loss Levels
takeProfitLevel = atr * riskRewardRatio
stopLossLevel = atr
// Entry Conditions
longCondition = dir == 1 and dir[1] == -1
shortCondition = dir == -1 and dir[1] == 1
// Entry Signals
if (longCondition)
strategy.entry("Long", strategy.long, stop=close - stopLossLevel, limit=close + takeProfitLevel)
if (shortCondition)
strategy.entry("Short", strategy.short, stop=close + stopLossLevel, limit=close - takeProfitLevel)
longStopPlot = plot(dir == 1 ? longStop : na, title='Long Stop', style=plot.style_linebr, linewidth=2, color=color.green)
shortStopPlot = plot(dir == 1 ? na : shortStop, title='Short Stop', style=plot.style_linebr, linewidth=2, color=color.red)
midPricePlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0, display=display.none, editable=false)
fill(midPricePlot, longStopPlot, color=color.new(color.green, 90), title='Long State Filling')
fill(midPricePlot, shortStopPlot, color=color.new(color.red, 90), title='Short State Filling')
// Alerts
if (dir != dir[1])
strategy.entry("Direction Change", strategy.long, comment="Chandelier Exit has changed direction!")
if (longCondition)
strategy.entry("Buy Signal", strategy.long, comment="Chandelier Exit Buy!")
if (shortCondition)
strategy.entry("Sell Signal", strategy.short, comment="Chandelier Exit Sell!")