Estrategia de ruptura de la tendencia de la miel ATR

El autor:¿ Qué pasa?, Fecha: 2023-12-06 18:03:38
Las etiquetas:

img

Resumen general

La estrategia de ruptura de la tendencia de miel ATR es una estrategia de ruptura a mediano plazo basada en el indicador ATR y las bandas de Bollinger para la generación de señales comerciales.

Principio de la estrategia

La estrategia consta de tres partes principales:

  1. Canal ATR: Calcula el rango de fluctuación de los precios de las acciones a través del indicador ATR y forma un canal hacia arriba y hacia abajo dentro de este rango.

  2. Línea de la abeja: toma la línea media de los precios de las acciones como línea de base.

  3. Filtración de tendencias: Calcula la tendencia de precios a través del indicador DMI y establece el ciclo de señal. Cuando los precios sig >: precios sig[3], la tendencia es alta. Cuando los precios sig < preciosig[3], la tendencia es baja.

La lógica específica para generar señales comerciales es:

Señal largo: pricesig > pricesig[3] y la ruptura del precio a través del carril inferior del canal.

Señal corto: pricesig < pricesig[3] y la ruptura del precio a través del carril superior del canal.

No hay intercambio en otras situaciones.

La estrategia también establece condiciones de stop profit y stop loss para controlar los riesgos comerciales.

Análisis de ventajas

La estrategia de ruptura de la tendencia de miel ATR tiene las siguientes ventajas:

  1. utilizar el indicador ATR para calcular el rango de fluctuación de los precios de las acciones, que puede capturar dinámicamente los cambios del mercado;

  2. Combinar la línea media para evaluar los precios de las acciones y establecer los puntos de negociación de ruptura del canal para evitar perseguir máximos y matar mínimos;

  3. El indicador DMI se utiliza para determinar la tendencia y evitar el comercio en contra de la tendencia, mejorando la tasa de ganancia;

  4. Establecer condiciones de detención de ganancias y de detención de pérdidas para controlar el riesgo del comercio único;

  5. Los parámetros de la estrategia son lo suficientemente flexibles como para optimizar la estrategia ajustando el ancho del canal, el ciclo ATR y otros factores.

Análisis de riesgos

La estrategia también tiene algunos riesgos:

  1. El comercio a medio plazo presenta fluctuaciones relativamente grandes y riesgos elevados.

  2. El cálculo del rango de canales ATR puede ser inexacto cuando los precios de las acciones fluctúan bruscamente, lo que conduce fácilmente a operaciones erróneas.

  3. El indicador DMI también puede cometer errores en el juicio de la tendencia, lo que afecta a la precisión de las señales de negociación.

En respuesta a los riesgos anteriores, se pueden ajustar parámetros como el canal ATR y aumentar los ciclos de señal para optimizar y mejorar.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Ajustar el ancho del canal ATR modificando el atrDivisor hacia arriba o hacia abajo para comprimir o ampliar el rango del canal.

  2. Ajustar el parámetro del ciclo de retroalimentación ATR para cambiar la sensibilidad del canal a las fluctuaciones recientes.

  3. Ajustar el parámetro del ciclo de la señal de tendencia para mejorar la precisión de los juicios de tendencia alcista y bajista.

  4. Añadir otros indicadores para la verificación multifactorial para mejorar la calidad de la señal.

  5. Optimizar los algoritmos de stop profit y stop loss para mejorar el control de riesgos.

Conclusión

La estrategia de breakout de la tendencia de la miel integra el análisis del rango de fluctuación de precios y los indicadores de juicio de tendencia. Al tiempo que captura los puntos calientes del mercado, también controla los riesgos comerciales. Es una estrategia cuantitativa flexible y adaptable. Esta estrategia puede mejorarse continuamente a través del ajuste de parámetros y la optimización de señales, con amplias perspectivas de aplicación.


/*backtest
start: 2023-11-01 00:00:00
end: 2023-11-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="Strategy - Bobo PATR Swing", overlay=true, default_qty_type = strategy.fixed, default_qty_value = 1, initial_capital = 10000)

// === STRATEGY RELATED INPUTS AND LOGIC ===
PivottimeFrame = input(title="Pivot Timeframe",  defval="D")
ATRSDtimeFrame = input(title="ATR Band Timeframe (Lower timeframe = wider bands)",  defval="D")
len = input(title="ATR lookback (Lower = bands more responsive to recent price action)",  defval=13)
myatr = atr(len)
dailyatr = request.security(syminfo.tickerid, ATRSDtimeFrame, myatr[1])
atrdiv = input(title="ATR divisor (Lower = wider bands)", type=float, defval=2)
pivot0 = (high[1] + low[1]  + close[1]) / 3
pivot = request.security(syminfo.tickerid, PivottimeFrame, pivot0)
upperband1 = (dailyatr / atrdiv) + pivot
lowerband1 = pivot - (dailyatr / atrdiv)
middleband = pivot

// == TREND CALC ===
i1=input(2, "Momentum Period", minval=1) //Keep at 2 usually
i2=input(20, "Slow Period", minval=1)
i3=input(5, "Fast Period", minval=1)
i4=input(3, "Smoothing Period", minval=1)
i5=input(4, "Signal Period", minval=1)
i6=input(50, "Extreme Value", minval=1)
hiDif = high - high[1]
loDif = low[1] - low
uDM = hiDif > loDif and hiDif > 0 ? hiDif : 0
dDM =  loDif > hiDif and loDif > 0 ? loDif : 0
ATR = rma(tr(true), i1)
DIu = 100 * rma(uDM, i1) / ATR
DId = 100 * rma(dDM, i1) / ATR
HLM2 =  DIu - DId
DTI = (100 * ema(ema(ema(HLM2, i2), i3), i4)) /  ema(ema(ema(abs(HLM2), i2), i3), i4)
signal = ema(DTI, i5)


// === RISK MANAGEMENT INPUTS ===
inpTakeProfit   = input(defval = 0, title = "Take Profit (In Market MinTick Value)", minval = 0)
inpStopLoss     = input(defval = 100, title = "Stop Loss (In Market MinTick Value)", minval = 0)

// === RISK MANAGEMENT VALUE PREP ===
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong = (((low<=lowerband1) and (close >lowerband1)) or ((open <= lowerband1) and (close > lowerband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal>signal[3])
exitLong = (high > middleband)
strategy.entry(id = "Long", long = true, when = enterLong) 
strategy.close(id = "Long", when = exitLong)

// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort = (((high>=upperband1) and (close < upperband1)) or ((open >= upperband1) and (close < upperband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal<signal[3])
exitShort = (low < middleband)
strategy.entry(id = "Short", long = false, when = enterShort)
strategy.close(id = "Short", when = exitShort)

// === STRATEGY RISK MANAGEMENT EXECUTION ===
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss)

// === CHART OVERLAY ===
plot(upperband1, color=#C10C00, linewidth=3)
plot(lowerband1, color=#23E019, linewidth=3)
plot(middleband, color=#00E2E2, linewidth=3)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Más.