
Эта стратегия представляет собой систему отслеживания трендов, которая сочетает в себе средний индикатор тренда ((ADX) и парализованный индикатор стоп-убытков ((SAR)). Система измеряет силу тренда с помощью ADX, используя SAR для подтверждения направления тренда, что позволяет ловить торговые возможности на рынках с сильной тенденцией. Система использует механизм двойного подтверждения, который обеспечивает наличие тенденции и проверяет ее надежность.
Основная логика стратегии основана на следующих ключевых компонентах:
Условия срабатывания торговых сигналов следующие:
Предложения по контролю рисков:
Введение параметров корректировки показателя волатильности
Оптимизация механизма выхода из игры
Увеличение рыночных фильтров
Совершенствование управления позициями
Эта стратегия, в сочетании с индикаторами ADX и SAR, создает прочную систему отслеживания тенденций. Основные преимущества стратегии заключаются в ее механизме двойного подтверждения и динамических параметрах остановки убытков, но она может плохо работать на волатильных рынках. С помощью разумной оптимизации параметров и контроля риска стратегия может хорошо работать в рыночных условиях с заметной тенденцией.
/*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)