Strategi ini mengamalkan idea hentian yang dinamik berdasarkan ATR dan harga yang melampau untuk mengira garis stop-loss yang panjang dan pendek. Digabungkan dengan idea Chandelier Exit, ia menilai arah panjang / pendek berdasarkan penembusan garis stop-loss. Apabila garis stop-loss pecah ke atas, ia dinilai sebagai kenaikan dan masuk panjang. Apabila garis stop-loss pecah ke bawah, ia dinilai sebagai penurunan dan masuk pendek.
Strategi ini mempunyai kedua-dua pengurusan stop-loss dan fungsi penilaian isyarat masuk.
Strategi ini terdiri daripada bahagian utama berikut:
Mengira garis stop-loss panjang/pendek berdasarkan ATR
Berdasarkan panjang tempoh ATR yang ditakrifkan pengguna dan banyak pengganda, ATR masa nyata dikira. Kemudian garis stop-loss panjang/pendek dikira dengan ATR dan harga ekstrem:
longStop = Highest - ATR
shortStop = Lowest + ATR
Menghakimi arah dagangan dengan pecah
Bandingkan garis stop-loss antara bar sebelumnya dan bar semasa.
Long stop-loss line breakout upwards, long entry
Short stop-loss line breakout downwards, short entry
Tetapkan stop loss dan ambil keuntungan berdasarkan nisbah risiko-balasan
Berdasarkan nisbah risiko-balasan yang ditakrifkan oleh pengguna riskRewardRatio, jarak stop loss dan jarak mengambil keuntungan dikira dari ATR. Perintah stop loss dan mengambil keuntungan ditetapkan semasa membuka kedudukan.
Kelebihan strategi ini termasuk:
Penghentian kerugian dinamik
Mengguna pakai garis stop loss yang dinamik membantu menghentikan kerugian tepat pada masanya dan mengawal risiko penurunan.
Fungsi berganda
Garis stop loss berfungsi sebagai alat pengurusan stop loss dan hakim keadaan kemasukan, mengurangkan kerumitan strategi.
Nisbah risiko-balasan yang boleh disesuaikan
Menjaring keuntungan yang lebih tinggi dengan nisbah risiko-balasan yang telah ditentukan.
Mudah difahami dan diperluaskan
Struktur mudah, mudah difahami dan dioptimumkan untuk pengembangan.
Beberapa risiko mungkin wujud untuk strategi ini:
Risiko dua hala
Sebagai strategi perdagangan dua arah, ia mengambil risiko panjang dan pendek.
Kebergantungan parameter ATR
Parameter ATR memberi kesan langsung kepada garis stop loss dan kekerapan perdagangan. Tetapan yang tidak betul boleh mengakibatkan stop loss yang terlalu luas atau kekerapan perdagangan yang terlalu tinggi.
Kebolehsesuaian trend
Strategi ini lebih sesuai untuk senario yang terhad dengan penembusan tiba-tiba.
Pengoptimuman untuk menangani risiko di atas adalah:
Menggabungkan penunjuk trend
Menggabungkan MA dan penunjuk trend lain untuk menentukan trend pasaran, mengelakkan perdagangan terhadap trend.
Pengoptimuman Parameter
Mengoptimumkan gabungan parameter ATR dan nisbah risiko-balasan untuk Stop Loss dan mengambil keuntungan yang lebih munasabah.
Penapis tambahan
Tambah penapis keadaan jumlah dagangan atau turun naik untuk memastikan kualiti dagangan.
Masih ada ruang untuk mengoptimumkan lagi strategi:
Menggabungkan pembelajaran mesin
Mengambil model pembelajaran mesin untuk meramalkan trend harga untuk ketepatan kemasukan yang lebih tinggi.
Membina portfolio bebas risiko dengan Pilihan
Menggunakan Pilihan untuk lindung nilai turun naik harga aset asas dan membina portfolio arbitraj bebas risiko.
Arbitraj pelbagai aset rentas pasaran
Melakukan arbitrage statistik merentasi pasaran dan kelas aset yang berbeza untuk mendapatkan alfa yang stabil.
Perdagangan algoritma
Leverage enjin dagangan algoritma untuk menguji strategi dan perdagangan secara cekap.
Artikel ini menganalisis secara menyeluruh strategi perdagangan kuantitatif berdasarkan kehilangan berhenti yang dinamik. Strategi ini pada masa yang sama mempunyai fungsi pengurusan kehilangan berhenti dan penentuan isyarat perdagangan, yang berkesan mengawal risiko. Kami juga membincangkan kelebihan, risiko yang berpotensi dan pengoptimuman masa depan strategi. Ini adalah strategi perdagangan yang sangat praktikal yang bernilai penyelidikan dan penerapan 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!")