
La estrategia es un sistema de seguimiento de tendencias y comercio dinámico basado en múltiples indicadores técnicos. Combina principalmente el indicador de tendencia promedio (ADX), el indicador de tendencia relativamente fuerte (RSI) y el real amplitud de onda (ATR) para identificar posibles oportunidades de hacer más, y utiliza ATR para establecer un precio de ganancia y pérdida dinámico. La estrategia es especialmente adecuada para el comercio de opciones con un período de tiempo de 1 minuto, para aumentar la tasa de éxito de las operaciones a través de condiciones estrictas de entrada y gestión de riesgos.
La lógica central de la estrategia incluye los siguientes componentes clave:
La estrategia utiliza una combinación de indicadores técnicos para construir un sistema de negociación completo. Su ventaja radica en la combinación de análisis de tendencias y dinámicas y en la adopción de un enfoque de gestión de riesgos dinámico. Aunque existe un cierto riesgo, se puede obtener un rendimiento estable en el comercio real mediante la optimización de parámetros razonables y medidas de control de riesgo. Se recomienda a los operadores que realicen una adecuada evaluación y optimización de parámetros de la estrategia antes de su uso en el mercado real y que se ajusten adecuadamente según las características de las clases de operaciones específicas.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SPcuttack
//@version=6
strategy("ADX & RSI Strategy with ATR Targets", overlay=true)
// Input parameters
adxLength = input.int(14, title="ADX Length")
adxSmoothing = input.int(14, title="ADX Smoothing")
rsiLength = input.int(14, title="RSI Length")
rsiSmaLength = input.int(20, title="RSI SMA Length")
atrLength = input.int(14, title="ATR Length")
atrMultiplierTarget = input.float(2.5, title="ATR Multiplier for Target")
atrMultiplierStop = input.float(1.5, title="ATR Multiplier for Stop Loss")
// ADX and DMI calculations
[adx, plusDI, minusDI] = ta.dmi(adxLength, adxSmoothing)
// RSI calculations
rsi = ta.rsi(close, rsiLength)
rsiSma = ta.sma(rsi, rsiSmaLength)
// ATR calculation
atr = ta.atr(atrLength)
// Slope calculations (difference from the previous value)
adxSlope = adx - adx[1]
rsiSlope = rsi - rsi[1]
// Entry conditions
adxCondition = adx > 18 and plusDI > minusDI and adxSlope > 0
rsiCondition = rsi > rsiSma and rsiSlope > 0
rsiCross60 = ta.crossover(rsi, 60)
// Global variable for long entry
var bool longEntry = false
if (adxCondition and rsiCondition and rsiCross60)
longEntry := true
else
longEntry := false
// Variables for target and stop loss levels
var float entryPrice = na
var float targetLevel = na
var float stopLossLevel = na
// Strategy actions
if (longEntry)
entryPrice := close
targetLevel := entryPrice + atr * atrMultiplierTarget
stopLossLevel := entryPrice - atr * atrMultiplierStop
strategy.entry("Long", strategy.long)
if (strategy.position_size > 0)
if (close >= targetLevel)
strategy.close("Long", comment="Tgt Hit")
if (close <= stopLossLevel)
strategy.close("Long", comment="SL Hit")
// Ensure lines plot on the chart body
targetLine = strategy.position_size > 0 ? targetLevel : na
stopLossLine = strategy.position_size > 0 ? stopLossLevel : na
plot(targetLine, title="Target Level", color=color.green, linewidth=2, offset=0)
plot(stopLossLine, title="Stop Loss Level", color=color.red, linewidth=2, offset=0)
// Add entry price for reference
plot(strategy.position_size > 0 ? entryPrice : na, title="Entry Price", color=color.blue, linewidth=1, style=plot.style_cross, offset=0)