Эта стратегия является системой, основанной на индикаторе ADX и объеме торговли. Она сочетает в себе индикатор ADX для определения силы тренда и использует объем в качестве сигналов подтверждения для захвата надежных торговых возможностей на сильных рынках с тенденцией.
Стратегия использует двойной механизм фильтрации с использованием ADX и объема. Когда значение ADX превышает установленный порог (по умолчанию 26), это указывает на значительную тенденцию рынка. Между тем, она подтверждает действительность тренда путем сравнения текущего объема с скользящей средней величиной объема за 20 периодов (множитель по умолчанию 1,8). На основе этих двух условий направление торговли определяется относительной силой DI + и DI. Стратегия автоматически закрывает позиции, когда обратные сигналы появляются, чтобы контролировать риск.
Это стратегия, следующая за трендом, с полной структурой и четкой логикой. Благодаря сочетанию индикатора ADX и объема торговли она эффективно решает проблему надежности сигнала в трендовой торговле. Стратегия имеет гибкие параметры, которые могут быть оптимизированы для различных характеристик рынка. Хотя есть определенные риски отставания, стратегия имеет хорошую практическую ценность благодаря соответствующим корректировкам параметров и улучшениям оптимизации.
/*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)