
Descripción general
La estrategia se basa en el indicador de UT Bot desarrollado por QuantNomad, combinado con el pensamiento de stop loss móvil. El código original fue escrito por @Yo_adriiiiaan y modificado por @HPotter. La estrategia se utilizará en conjunto con los conceptos de dinero inteligente de LuxAlgo. La estrategia se encuentra en fase de prueba.
Principio de estrategia
Los principales principios de la estrategia son los siguientes:
- Cuando el precio de cierre está por encima de la media móvil simple de 50 periodos, se realizan más operaciones.
- Para las posiciones de más de un jefe, establezca un precio de parada móvil. El precio de parada móvil es del 80% (el 1-20%) del precio de cierre actual. El precio de parada móvil se eleva con la subida de los precios, pero no baja, lo que protege los beneficios.
- Para las posiciones en blanco, también se establece un precio de parada móvil. El precio de parada móvil es del 120% del precio de cierre actual (el 1 + 20%). El precio de parada móvil baja con la caída del precio, pero no sube.
- Utilizando el ATR (Average True Range) como base de referencia para el movimiento de la parada. El método de cálculo del precio de parada móvil del ATR es: tomando el precio de parada móvil del ATR anterior y el precio de cierre actual del ATR cuando se mueve hacia arriba.*Key Value) el mayor de los dos; cuando se mueve hacia abajo, toma el precio de parada de movimiento anterior ATR y el precio de cierre actual + ATR*Key Value) es el valor más pequeño de ambos. Key Value es el parámetro que el usuario configura para ajustar la sensibilidad de la parada móvil.
- En función de la ruptura del precio de parada móvil de ATR, juzgue la dirección de la posición actual. Mantenga una posición de más cabeza cuando el precio supere el precio de parada móvil de ATR; Mantenga una posición de cabeza vacía cuando el precio supere el precio de parada móvil de ATR; Mantenga la posición actual sin cambios en otros casos.
Análisis de las ventajas
- La configuración de stop loss móvil protege bien los beneficios, permitiendo a la estrategia obtener más ganancias en situaciones de tendencia.
- La posición de la posición de la posición de la posición de la posición de la posición de la posición de la posición de la posición de la posición de la posición de la posición de la posición de la posición de la posición de la posición.
- El uso de ATR como base de referencia para el stop loss permite un ajuste dinámico de la posición del stop loss, lo que es más flexible y efectivo.
- Se proporcionan parámetros de valor clave para la optimización del usuario, que se pueden ajustar según las diferentes variedades y ciclos, para mejorar la adaptabilidad.
Análisis de riesgos
- En situaciones convulsivas, los estorbos frecuentes pueden provocar un exceso de operaciones, aumentar los costos de las comisiones y reducir los beneficios.
- El método de stop-loss móvil de porcentaje fijo es relativamente sencillo y puede no responder bien a las fluctuaciones de precios en algunas situaciones.
- La estrategia solo tiene en cuenta los stop loss móviles, sin establecer un stop stop móvil, y puede perder algunas oportunidades de ganancias.
- La elección de los parámetros tiene un gran impacto en el rendimiento de la estrategia, y los parámetros incorrectos pueden conllevar un mayor riesgo de retirada.
Dirección de optimización
- Se puede considerar la combinación de otros indicadores o condiciones, como el volumen de operaciones, la volatilidad, etc., para optimizar las condiciones de entrada y mejorar la fiabilidad de la señal.
- Para los métodos de cálculo del stop móvil, se pueden explorar formas más complejas y efectivas, como el uso de stop paralelo, stop porcentual dinámico, etc.
- Se puede agregar un mecanismo de parada móvil, como la configuración de paradas dinámicas según el ATR o el porcentaje, para bloquear mejor los beneficios.
- Para diferentes variedades y ciclos, se puede optimizar los parámetros para buscar la combinación de parámetros más adecuada. También se puede ajustar dinámicamente los parámetros según los cambios en la situación del mercado.
Resumir
La estrategia se basa en el indicador de UT Bot, se agrega la lógica de la parada móvil, puede jugar un papel en la protección de las ganancias en situaciones de tendencia. Al mismo tiempo, la estrategia de la posición de la cabeza y la cabeza vacía, por separado, el establecimiento de la parada de pérdidas, la adaptabilidad es fuerte. El uso de ATR como base de referencia de la parada móvil, puede ajustar dinámicamente la posición de la parada de pérdidas, mejorar la flexibilidad.
En el futuro, las estrategias se pueden perfeccionar para obtener ganancias más sólidas, desde la optimización de las condiciones de entrada, la exploración de métodos de parada móvil más complejos, la incorporación de mecanismos de parada móvil y la optimización de parámetros para diferentes variedades y períodos. En general, la idea de la estrategia es simple, fácil de entender y implementar, pero hay espacio para una optimización adicional que vale la pena seguir explorando y mejorando.
Código Fuente de la Estrategia
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Trailingstop", overlay=true)
if close > sma(close, 50)
strategy.entry("long", strategy.long)
// Trailing stop loss for long positions
Trailperc = 0.20
price_stop_long = 0.0
if (strategy.position_size > 0)
stopValue = close * (1 - Trailperc)
price_stop_long := max(stopValue, price_stop_long[1])
else
price_stop_long := 0
if (strategy.position_size > 0)
strategy.exit(id="stoploss_long", stop=price_stop_long)
// Trailing stop loss for short positions
Trailperc_short = 0.20
price_stop_short = 0.0
if (strategy.position_size < 0)
stopValue_short = close * (1 + Trailperc_short)
price_stop_short := min(stopValue_short, price_stop_short[1])
else
price_stop_short := 0
if (strategy.position_size < 0)
strategy.exit(id="stoploss_short", stop=price_stop_short)
// ATR Trailing Stop for visualization
keyvalue = input(3, title="Key Value. 'This changes the sensitivity'", step=0.5)
atrperiod = input(10, title="ATR Period")
xATR = atr(atrperiod)
nLoss = keyvalue * xATR
xATRTrailingStop = 0.0
xATRTrailingStop := iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss),
iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos = 0
pos := iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue
plot(xATRTrailingStop, color = xcolor, title = "Trailing Stop")