
La estrategia calcula el indicador ATR como una línea de stop loss, que genera una señal de compra cuando el precio sube por EMA, y una señal de venta cuando el precio baja por EMA, y utiliza un stop loss dinámico para administrar el riesgo.
La lógica central de esta estrategia es la siguiente:
Calcula el indicador ATR como una línea de stop loss, el valor de ATR se utiliza para calcular la distancia de stop loss nLoss
De acuerdo con la opción de la barra de Heikin Ashi para determinar el origen del precio, el precio de cierre de cierre se utiliza de forma predeterminada, si se selecciona Heikin Ashi se utiliza el precio de cierre de la barra
Define xATRTrailingStop como una línea de parada de seguimiento dinámico, para determinar la línea de parada de la línea K actual en función de la comparación de precios con la línea de parada de la línea K anterior
Definir posiciones pos, cuando el precio está por encima de la línea de pérdida, se establece como 1 (hacer más), cuando el precio está por debajo de la línea de pérdida, se establece como -1 (hacer vacío) y, de lo contrario, como 0 (inmueble vacío)
Calcula el valor medio de la línea EMA de una línea K, que define el indicador en la parte superior (señal de compra) y en la parte inferior (señal de venta)
Configuración de entradas y salidas de operaciones cuando se producen señales de compra y venta
Utiliza la función barcolor para marcar el color de la línea K en función de su posición
Señales de marcado de compra y venta con plotshape
La estrategia gestiona el riesgo a través de la parada dinámica de ATR, permitiendo la entrada a tiempo cuando se presenta una tendencia y la parada a tiempo cuando se activa la línea de parada.
La estrategia tiene las siguientes ventajas:
El uso de un ATR para detener el movimiento de los precios permite ajustar el intervalo de detención en función de la volatilidad del mercado, garantizando el deterioro y evitando el deterioro demasiado radical provocado por las fluctuaciones de precios a corto plazo.
Se utiliza la EMA para generar señales de negociación y filtrar las transacciones innecesarias generadas por algunas brechas falsas.
Permite elegir el aluminio Heikin Ashi como fuente de precios y puede filtrar el ruido para identificar tendencias
La gestión de posiciones es clara, hacer más posiciones en blanco y claro, evitar el seguimiento de las transacciones que generan pérdidas
Indicación visual de las señales de negociación y de los paros mediante líneas, marcas y coloraciones
La lógica de la estrategia es simple y clara, fácil de entender y modificar
Ciclo de ATR y multiplicador de ATR personalizado para adaptarse a diferentes entornos de mercado
En resumen, la estrategia integra la tecnología de seguimiento de tendencias y el deterioro dinámico para identificar de manera efectiva las tendencias y administrar el riesgo, y se aplica a las transacciones que siguen tendencias medianas y largas.
La estrategia también tiene ciertos riesgos:
La EMA promedio genera señales de negociación que pueden retrasarse y perder oportunidades de línea corta
La distancia de parada se determina por el ATR y es propensa a una parada frecuente en momentos de fluctuaciones en el mercado
Las comisiones bilaterales en las transacciones reales afectan a las ganancias sin tener en cuenta los factores de costo
Falta de control de posición adecuado y mejoras en la gestión de fondos
El efecto depende de la optimización de los parámetros, los parámetros deben ajustarse en diferentes mercados
El mercado está en crisis y es fácil ser atrapado
Deben ser vigilados, intervenidos o detenidos a tiempo
Se puede reducir el riesgo mediante la optimización adecuada de los parámetros, la configuración de control de posición, en combinación con otros indicadores de filtración de señales y otros métodos. En el comercio en vivo, debe controlar el tamaño de la posición, monitorear continuamente el efecto de la estrategia, intervenir manualmente o cerrar si es necesario.
La estrategia puede ser optimizada en los siguientes aspectos:
Ajuste de los parámetros de ATR para hacer más razonable el stop loss en diferentes mercados
Prueba de diferentes indicadores de uniformidad para filtrar aún más las falsas señales
Aumentar los indicadores de tendencia, identificar la dirección de la tendencia y luego ingresar
Configuración de un control de posición para limitar el número de posiciones en un solo sentido
Aumentar las condiciones de apertura de posición, como el volumen de operaciones, el precio de cierre lejos de la línea media, etc.
Tener en cuenta los costos y establecer la distancia de parada en función de las comisiones
Optimizar el momento de compra y venta, combinando múltiples señales e indicadores
Parar parcialmente o mover el freno
Añadir la función de optimización de parámetros para optimizar automáticamente los parámetros de prueba
Se puede perfeccionar aún más la estrategia mediante el uso integrado de varios indicadores técnicos y métodos de optimización para obtener un efecto más estable en un mayor número de mercados.
La estrategia integra la tecnología de seguimiento de tendencias y el deterioro dinámico, con ventajas como el deterioro efectivo, el seguimiento fluido, la facilidad de comprensión y optimización, y se aplica a los patrones de tendencias de línea media y larga. Pero también debe tener en cuenta el control del riesgo y los parámetros de optimización. Si se usa bien la estrategia, se pueden obtener buenos resultados en mercados con tendencias evidentes.
/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol.
// Inputs
a = input(1, title = "Key Vaule. 'This changes the sensitivity'")
c = input(10, title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")
xATR = atr(c)
nLoss = a * xATR
src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close
xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss),
iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
pos = 0
pos := iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue
ema = ema(src,1)
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)
buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below
barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop
plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny)
barcolor(barbuy ? color.green : na)
barcolor(barsell ? color.red : na)
strategy.entry("long", true, when = buy)
strategy.entry("short", false, when = sell)