
Strategi ini adalah sistem pengesanan trend berdasarkan indikator ADX dan jumlah transaksi. Ia menilai kekuatan trend dengan menggabungkan indikator ADX dan menggunakan jumlah transaksi sebagai isyarat pengesahan, untuk menangkap peluang perdagangan yang boleh dipercayai di pasaran yang sedang tren. Logik teras strategi ini adalah untuk berdagang hanya apabila pasaran menunjukkan trend yang jelas dan mendapat sokongan jumlah transaksi yang mencukupi.
Strategi menggunakan indikator ADX dan mekanisme penapisan dua kali ganda jumlah transaksi. Apabila nilai ADX melebihi had yang ditetapkan (default 26), menunjukkan terdapat trend yang jelas di pasaran; dan mengesahkan kesahihan trend dengan membandingkan jumlah dagangan semasa dengan hubungan purata jumlah dagangan 20 kitaran (default multiplier 1.8). Berdasarkan pemenuhan kedua-dua syarat ini, arah trend dinilai berdasarkan hubungan yang agak kuat antara DI + dan DI - dan dengan itu menentukan arah pembukaan kedudukan.
Ini adalah strategi pengesanan trend yang lengkap dan logik yang jelas. Dengan menggunakan indikator ADX dan jumlah perdagangan, masalah kebolehpercayaan isyarat dalam perdagangan trend diselesaikan dengan lebih baik. Tetapan parameter strategi fleksibel dan dapat dioptimumkan mengikut ciri-ciri pasaran yang berbeza. Walaupun terdapat risiko ketinggalan, strategi ini mempunyai nilai praktikal yang baik dengan penyesuaian dan pengoptimuman parameter yang sesuai.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-11-11 00:00:00
period: 1h
basePeriod: 1h
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("ADX + Volume Strategy", overlay=true)
// Strategy parameters
adxLength = input(21, title="ADX Period") // ADX period
adxThreshold = input(26, title="ADX Threshold") // ADX threshold to determine strong trend
volumeMultiplier = input.float(1.8, title="Volume Multiplier", minval=0.1, maxval=10 , step = 0.1) // Volume multiplier, adjustable float
// Calculate ADX, DI+, DI-
[diPlus, diMinus, adx] = ta.dmi(adxLength, adxLength)
// Average volume for signal confirmation
avgVolume = ta.sma(volume, 20) // Simple Moving Average of volume over 20 bars
// Conditions for entering a long position
longCondition = adx > adxThreshold and diPlus > diMinus and volume > avgVolume * volumeMultiplier
// Conditions for entering a short position
shortCondition = adx > adxThreshold and diMinus > diPlus and volume > avgVolume * volumeMultiplier
// Enter a long position
if (longCondition)
strategy.entry("Long", strategy.long)
// Enter a short position
if (shortCondition)
strategy.entry("Short", strategy.short)
// Close positions on opposite signals
if (strategy.position_size > 0 and shortCondition)
strategy.close("Long")
if (strategy.position_size < 0 and longCondition)
strategy.close("Short")
// Display ADX on the chart
plot(adx, color=color.red, title="ADX")
hline(adxThreshold, "ADX Threshold", color=color.green)