
Strategi ini adalah sistem perdagangan pengesanan trend yang menggabungkan penunjuk trend rata-rata ((ADX) dan penunjuk peralihan stop loss parallax ((SAR)). Sistem ini mengukur kekuatan trend melalui ADX, menggunakan SAR untuk mengesahkan arah trend, sehingga menangkap peluang perdagangan di pasaran yang kuat. Sistem ini menggunakan mekanisme pengesahan ganda, memastikan kewujudan trend dan mengesahkan kebolehpercayaan trend.
Logik utama strategi ini adalah berdasarkan beberapa komponen utama:
Syarat pencetus untuk isyarat dagangan adalah seperti berikut:
Cadangan kawalan risiko:
Memperkenalkan parameter penyesuaian penunjuk kadar turun naik
Optimumkan mekanisme keluar
Menambah penapisan persekitaran pasaran
Pengurusan kedudukan yang lebih baik
Strategi ini, dengan menggabungkan ADX dan SAR, membina sistem pengesanan trend yang mantap. Kelebihan utama strategi ini adalah mekanisme pengesahan ganda dan tetapan stop loss dinamik, tetapi ia mungkin kurang baik dalam pasaran yang bergolak. Dengan pengoptimuman parameter yang munasabah dan kawalan risiko, strategi ini dapat mencapai prestasi yang baik dalam keadaan 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)