Strategi ini adalah sistem perdagangan mengikut trend yang menggabungkan Indeks Arah Purata (ADX) dengan penunjuk Hentian Parabolik dan Revers (SAR). Sistem ini mengukur kekuatan trend menggunakan ADX dan mengesahkan arah trend menggunakan SAR untuk menangkap peluang perdagangan di pasaran yang kuat. Ia menggunakan mekanisme pengesahan berganda untuk memastikan kedua-dua kewujudan dan kebolehpercayaan trend.
Logik teras adalah berdasarkan komponen utama berikut:
Pencetus isyarat perdagangan adalah seperti berikut:
Cadangan kawalan risiko:
Memperkenalkan penunjuk turun naik untuk pelarasan parameter
Mengoptimumkan mekanisme keluar
Tambah penapis persekitaran pasaran
Meningkatkan pengurusan kedudukan
Strategi ini membina sistem trend berikut yang kukuh dengan menggabungkan penunjuk ADX dan SAR. Kelebihan utamanya terletak pada mekanisme pengesahan berganda dan tetapan stop-loss dinamik, walaupun prestasi mungkin kurang optimum di pasaran berayun. Melalui pengoptimuman parameter yang sesuai dan kawalan risiko, strategi dapat mencapai prestasi yang baik dalam persekitaran pasaran yang jelas.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © traderhub //@version=5 strategy("Trend Following ADX + Parabolic SAR", overlay=true) // Strategy parameters adxLength = input(14, title="ADX Period") adxThreshold = input(25, title="ADX Threshold") adxSmoothing = input(14, title="ADX Smoothing") sarStart = input(0.02, title="Parabolic SAR Start") // Starting acceleration factor sarIncrement = input(0.02, title="Parabolic SAR Increment") // Increment step sarMax = input(0.2, title="Parabolic SAR Max") // Maximum acceleration factor // Calculate ADX, DI+, and DI- [diPlus, diMinus, adx] = ta.dmi(adxLength, adxSmoothing) // Parabolic SAR calculation sar = ta.sar(sarStart, sarIncrement, sarMax) // Conditions for a long position longCondition = adx > adxThreshold and diPlus > diMinus and close > sar // Conditions for a short position shortCondition = adx > adxThreshold and diMinus > diPlus and close < sar // Enter a long position if (longCondition) strategy.entry("Long", strategy.long) // Enter a short position if (shortCondition) strategy.entry("Short", strategy.short) // Close position on reverse signal if (strategy.position_size > 0 and shortCondition) strategy.close("Long") if (strategy.position_size < 0 and longCondition) strategy.close("Short") // Plot indicators on the chart plot(sar, color=color.blue, style=plot.style_circles, linewidth=2, title="Parabolic SAR") plot(adx, color=color.red, title="ADX") hline(adxThreshold, "ADX Threshold", color=color.green)