Strategi ini mengadopsi gagasan stop trailing dinamis berdasarkan ATR dan harga ekstrem untuk menghitung garis stop loss panjang dan pendek. Dikombinasikan dengan gagasan Chandelier Exit, strategi ini menilai arah panjang/pendek berdasarkan stop loss line breakout. Ketika stop loss line pecah ke atas, itu dinilai sebagai bullish dan long entry. Ketika stop loss line pecah ke bawah, itu dinilai sebagai bearish dan short entry.
Strategi ini memiliki fungsi manajemen stop-loss dan penilaian sinyal masuk.
Strategi ini terdiri dari bagian-bagian utama berikut:
Menghitung garis stop-loss panjang/pendek berdasarkan ATR
Berdasarkan panjang periode ATR yang ditentukan pengguna dan multiplikator multip, ATR real-time dihitung. Kemudian garis stop-loss panjang/pendek dihitung dengan ATR dan harga ekstrim:
longStop = Highest - ATR
shortStop = Lowest + ATR
Menghakimi arah perdagangan dengan breakout
Bandingkan garis stop-loss antara bar sebelumnya dan bar saat ini Jika garis stop-loss bar saat ini pecah, sinyal perdagangan dipicu:
Long stop-loss line breakout upwards, long entry
Short stop-loss line breakout downwards, short entry
Setel stop loss dan take profit berdasarkan rasio risiko-imbalan
Berdasarkan rasio risiko-manfaat yang ditentukan pengguna riskRewardRatio, jarak stop loss dan jarak take profit dihitung dari ATR. Stop loss order dan take profit order ditetapkan saat membuka posisi.
Keuntungan dari strategi ini meliputi:
Stop Loss Penginderaan Dinamis
Mengadopsi garis stop loss trailing yang dinamis membantu menghentikan kerugian tepat waktu dan mengendalikan risiko penurunan.
Fungsi ganda
Garis stop loss berfungsi sebagai alat manajemen stop loss dan hakim kondisi masuk, mengurangi kompleksitas strategi.
Rasio risiko-manfaat yang dapat disesuaikan
Menuntut keuntungan yang lebih tinggi dengan rasio risiko-balasan yang telah ditentukan.
Mudah dimengerti dan diperluas
Struktur sederhana, mudah dipahami dan dioptimalkan untuk perluasan.
Beberapa risiko mungkin ada untuk strategi ini:
Risiko dua arah
Sebagai strategi perdagangan dua arah, ia mengambil risiko jangka panjang dan jangka pendek.
ketergantungan pada parameter ATR
Parameter ATR secara langsung mempengaruhi garis stop loss dan frekuensi trading. pengaturan yang tidak benar dapat mengakibatkan stop loss yang terlalu luas atau frekuensi trading yang terlalu tinggi.
Adaptasi terhadap tren
Strategi ini lebih cocok untuk skenario berkisar dengan pecah mendadak. Tidak cocok untuk skenario tren yang kuat.
Optimalisasi untuk mengatasi risiko di atas adalah:
Menggabungkan indikator tren
Menggabungkan MA dan indikator tren lainnya untuk menentukan tren pasar, menghindari perdagangan melawan tren.
Optimasi parameter
Mengoptimalkan kombinasi parameter ATR dan rasio risiko-manfaat untuk stop loss yang lebih wajar dan mengambil keuntungan.
Filter tambahan
Menambahkan volume perdagangan atau volatilitas filter kondisi untuk memastikan kualitas perdagangan.
Masih ada ruang untuk mengoptimalkan strategi lebih lanjut:
Mengintegrasikan pembelajaran mesin
Mengadopsi model pembelajaran mesin untuk memprediksi tren harga untuk akurasi entri yang lebih tinggi.
Membangun portofolio bebas risiko dengan Opsi
Menggunakan Opsi untuk lindung nilai fluktuasi harga aset dasar dan membangun portofolio arbitrage bebas risiko.
Arbitrage multi-aset lintas pasar
Melakukan arbitrase statistik lintas pasar yang berbeda dan kelas aset untuk mendapatkan alfa yang stabil.
Perdagangan algoritma
Leverage mesin perdagangan algoritma untuk efektif backtest strategi dan perdagangan.
Artikel ini secara menyeluruh menganalisis strategi perdagangan kuantitatif berdasarkan stop loss trailing dinamis. Strategi ini secara bersamaan memiliki fungsi manajemen stop loss dan penentuan sinyal perdagangan, yang secara efektif mengendalikan risiko. Kami juga membahas keuntungan, risiko potensial dan optimasi masa depan dari strategi ini. Ini adalah strategi perdagangan yang sangat praktis yang layak untuk penelitian dan aplikasi lebih lanjut.
/*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!")