Estrategia de impulso de seguimiento de tendencias


Fecha de creación: 2023-10-17 15:26:49 Última modificación: 2023-10-17 15:26:49
Copiar: 0 Número de Visitas: 628
1
Seguir
1617
Seguidores

Estrategia de impulso de seguimiento de tendencias

Descripción general

Esta estrategia se basa en un indicador integral personalizado que permite el seguimiento de la tendencia mediante la suma acumulada de la distancia entre el precio y la media móvil para determinar la dirección de la tendencia de los precios.

Principio de estrategia

La estrategia utiliza un indicador personalizado para sumar la distancia entre el precio y la media móvil, concretamente:

  1. Calcula el precio con respecto a la distancia k = close-sma (casi 200)

  2. Define el ciclo acumulativo s=29, sumando los valores de k en el ciclo más reciente s: sum = 0, for i = 0 to s, sum := sum + k[i]

  3. Cuando sum>0 produce una señal múltiple, cuando sum produce una señal vacía

  4. Cuando se entra en una posición de más, si la suma < 0 es baja; cuando se entra en una posición de menos, si la suma> 0 es baja

Esta estrategia determina la dirección de la tendencia general de los precios al rastrear la suma acumulada de los positivos y negativos de la distancia entre los precios y los promedios móviles. Se debe tener un polinomio cuando se integra y es positivo y se considera que los precios están en una tendencia ascendente; se debe tener un polinomio cuando se integra y es negativo y se considera que los precios están en una tendencia descendente.

Ventajas estratégicas

  1. El uso de un indicador integral personalizado para determinar la dirección de la tendencia de los precios

  2. El uso de la teoría de la integración para la acumulación de la distancia entre el precio y la media móvil puede mejorar la precisión de las tendencias

  3. Lógica relativamente simple, fácil de entender y fácil de implementar para optimizar mejoras

  4. Se puede ajustar de forma flexible el parámetro del ciclo integral para optimizar la sensibilidad del integrador a la determinación de tendencias

  5. El rendimiento de la retroalimentación es bueno, los ingresos son estables y se pueden aplicar en la práctica

Riesgo estratégico

  1. La configuración incorrecta del ciclo integral puede hacer que el integrador sea insensible y pierda el punto de inflexión de la tendencia

  2. La longitud de la media móvil está mal configurada y puede causar que el integrador malinterprete la tendencia de los precios

  3. Los eventos de gran magnitud pueden provocar cambios bruscos en los precios y generar señales erróneas en el indicador.

  4. La mala selección de variedades de comercio, como la elección de variedades con una tasa de fluctuación excesiva, puede hacer que el integrador no funcione bien

Resolvemos el riesgo:

  1. Optimización de los parámetros del ciclo integral para que el integrador sea más sensible a los cambios de tendencia

  2. Prueba el efecto de las medias móviles de diferentes longitudes, y selecciona la longitud que determina la tendencia de manera efectiva

  3. La estrategia de cierre antes de los eventos importantes evita las señales falsas de los cambios de precio drásticos

  4. La elección de variedades de comercio con baja volatilidad mejora la eficiencia del acumulador

Dirección de optimización de la estrategia

  1. Se puede considerar la adición de otros indicadores auxiliares, como el RSI, a la base de los integradores para formar un juicio integral.

  2. Se pueden estudiar diferentes tipos de promedios móviles y efectos de integración de la distancia al precio.

  3. Se puede intentar optimizar automáticamente los parámetros del ciclo de integración para que se adapten a diferentes variedades de transacciones

  4. Se puede agregar un indicador de volumen de transacción para evitar que el integrador produzca una señal errónea cuando los precios se mueven violentamente

  5. Se pueden optimizar automáticamente los parámetros del integrador a través de métodos como el aprendizaje automático para que las estrategias sean más robustas

Resumir

Esta estrategia determina la dirección de la tendencia de los precios mediante el uso de un indicador integral personalizado para determinar la dirección de la tendencia de los precios, y utiliza un método de seguimiento eficaz de la tendencia. La lógica de la estrategia es simple y clara, y el rendimiento de la retroalimentación es bueno.

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

//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)

l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=29)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
    sum := sum + k[i]
plot(a,color=yellow,linewidth=2,transp=0)
//bc =  iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na


longCondition = sum>0
exitlong = sum<0

shortCondition = sum<0
exitshort = sum>0

strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)