Estrategia de ruptura de tendencia ATR adaptativa


Fecha de creación: 2023-10-31 15:58:46 Última modificación: 2023-10-31 15:58:46
Copiar: 0 Número de Visitas: 690
1
Seguir
1617
Seguidores

Estrategia de ruptura de tendencia ATR adaptativa

Descripción general

La estrategia es una estrategia de ruptura de tendencia basada en el indicador ATR. Su principal idea es realizar operaciones de ruptura de tendencia cuando el precio supera un determinado múltiplo de ATR. La estrategia también incluye la confirmación de la tendencia y la función de limitar el comercio utilizando el rango de fechas.

El principio

La estrategia utiliza el indicador ATR para determinar la amplitud de las fluctuaciones de los precios. ATR representa la amplitud real promedio, que mide la amplitud de las fluctuaciones de los precios promedio en un período de tiempo determinado.

Cuando el precio sube, se hace una operación de multiplicación cuando el precio sube, se hace una operación de multiplicación cuando el precio sube, se hace una operación de multiplicación cuando el precio sube, se hace una operación de comprobación cuando el precio baja, se hace una operación de comprobación cuando el precio baja, se hace una operación de comprobación cuando el precio baja.

Además, la estrategia incluye las variables BOOL que requieren posiciones largas (needlong) y que requieren posiciones cortas (needshort), que se pueden controlar solo para hacer más o solo para hacer menos. La estrategia también establece un rango de fechas para negociar solo entre las fechas especificadas, lo que permite un límite de rango de tiempo.

La estrategia utiliza la variable de tamaño para determinar la posición, y calcula el número de manos en función de la situación de la posición. El número de manos se calcula en función del porcentaje de derechos e intereses de la cuenta.

Las ventajas

  • Utiliza el indicador ATR para adaptarse automáticamente a las fluctuaciones del mercado sin necesidad de establecer manualmente la distancia de parada de pérdidas
  • Opciones flexibles para hacer más vacío o solo más/vacío
  • Se puede ajustar el rango de fechas para el comercio, evitar puntos de tiempo importantes
  • La configuración del móvil es flexible y se puede ordenar según el porcentaje de intereses de la cuenta

Riesgos y soluciones

  • El indicador ATR solo considera las fluctuaciones de los precios, y si las condiciones cambian drásticamente, el stop loss puede ser demasiado pequeño y necesitará una combinación de optimización con otros indicadores
  • Cuando se limita el rango de fechas, se puede ampliar el rango de fechas de manera adecuada si no hay una oportunidad adecuada antes o después de un período de tiempo importante, lo que puede conducir a una oportunidad de negociación perdida.
  • Cuando se solicita con una proporción de derecho de interés de cuenta, se debe establecer una proporción razonable para evitar una pérdida excesiva

Optimización de las ideas

  • Se puede considerar la inclusión de indicadores de tendencia como las medias móviles para filtrar el ruido de las rupturas de no tendencia
  • Se pueden probar diferentes parámetros de ciclo ATR para seleccionar la mejor combinación de parámetros
  • Se puede considerar su uso en combinación con otras combinaciones de estrategias para aprovechar sus ventajas y mejorar la estabilidad de la estrategia

Resumir

La idea general de esta estrategia es clara y fácil de entender. El uso de indicadores ATR para adaptarse automáticamente a la volatilidad del mercado es una estrategia de seguimiento de tendencias generalizada.

Código Fuente de la Estrategia
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Volty Strategy v1.0", shorttitle = "Volty 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
length = input(5)
numATRs = input(0.75)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Indicator
atrs = sma(tr, length) * numATRs

//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[length])) and needlong
    strategy.entry("L", strategy.long, lot, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needlong == false
    strategy.entry("L", strategy.long, 0, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needshort
    strategy.entry("S", strategy.short, lot, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needshort == false
    strategy.entry("S", strategy.short, 0, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))