
Esta estrategia es un sistema de seguimiento de tendencias que combina un indicador de tendencia promedio (ADX) y un indicador de pérdidas paralizadas (SAR). El sistema mide la fuerza de la tendencia a través de ADX y utiliza SAR para confirmar la dirección de la tendencia, capturando así oportunidades de comercio en mercados de fuerte tendencia. El sistema utiliza un mecanismo de doble confirmación para garantizar la existencia de la tendencia y verificar su fiabilidad.
La lógica central de la estrategia se basa en los siguientes componentes clave:
Las condiciones de activación de las señales comerciales son las siguientes:
Sugerencias para el control de riesgos:
Introducción de los parámetros de ajuste del indicador de fluctuación
Mecanismo de salida optimizado
Aumentar el filtro de las condiciones del mercado
Mejorar la gestión de posiciones
La estrategia, combinada con los indicadores ADX y SAR, construye un sólido sistema de seguimiento de tendencias. La principal ventaja de la estrategia reside en su mecanismo de doble confirmación y su configuración de stop loss dinámica, pero puede tener un mal desempeño en mercados convulsos.
/*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)