Estrategia de seguimiento de tendencias basada en SMA y ATR


Fecha de creación: 2024-01-18 16:04:51 Última modificación: 2024-01-18 16:04:51
Copiar: 0 Número de Visitas: 637
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias basada en SMA y ATR

Nombre de la estrategia

Esta estrategia se llamaEstrategia de seguimiento de tendencias basada en SMA y ATR

La estrategia es muy simple.

Esta estrategia utiliza el índice SMA para determinar la dirección de la tendencia de los precios y utiliza el índice ATR para establecer una posición de stop loss para seguir la tendencia. Haga una posición baja cuando el precio cae por debajo de la tendencia alcista y una posición más alta cuando el precio rompe la tendencia descendente, para realizar una operación de tendencia.

Tres, las estrategias.

1. La señal de entrada

(1) Hacer más cuando el precio de cierre sube y está por encima de la SMA (2) Hacer un shorting cuando el precio de cierre cae y está por debajo de la SMA

2. Ajuste para detener el daño

Utilice el valor del indicador ATR multiplicado por el multiplicador de stop loss establecido como posición de stop loss.

3. Las actualizaciones de stop loss

Después de cada cerramiento de la línea K, revise la posición de parada y actualice la parada más cercana al precio actual.

4. La señal de salida

El precio toca el límite de pérdida y se retira activamente.

Cuatro, ventajas estratégicas

1. La capacidad de seguimiento de tendencias

La configuración de stop loss dinámico que utiliza el indicador ATR permite el seguimiento automático de la tendencia.

2. La capacidad de control de retirada es buena

Las estrictas reglas de stop loss ayudan a controlar el máximo retiro de una sola transacción.

3. La configuración de los parámetros es simple

Sólo 3 parámetros para su ajuste y optimización.

Cinco, el riesgo estratégico.

1. La posibilidad de que el límite sea demasiado flexible

Si el módulo de stop loss es demasiado grande, puede causar que la posición de stop loss sea demasiado relajada, lo que aumenta la retirada.

2. El riesgo de una falsa brecha

La aparición de una falsa ruptura en el precio puede conducir a una desviación de la dirección de la tendencia y debe combinarse con otras señales de filtración.

3. Parámetros para optimizar el riesgo

El exceso de dependencia en la optimización de los parámetros puede conducir a la optimización de la curva. La estabilidad de los parámetros debe evaluarse con cuidado.

Seis, estrategias para mejorar.

1. Optimización de los algoritmos de pérdidas

Se pueden probar otros tipos de algoritmos de stop loss, como el stop loss móvil, el stop loss proporcional, etc.

2. Aumentar las señales de filtración

Se pueden añadir otros indicadores de filtración de brechas falsas. Por ejemplo, el aumento de las condiciones de volumen de transacción.

3. Evaluar la estabilidad de los parámetros

Evaluar la adaptabilidad de los parámetros a diferentes variedades y ciclos a través de la retroalimentación histórica.

VII. Conclusión

Esta estrategia tiene una idea general clara, determina la dirección de la tendencia a través de la SMA y utiliza el ATR para el seguimiento de la tendencia, tiene una buena capacidad de control de reversión y es adecuada para el comercio de tendencias de línea media y larga. Sin embargo, aún se necesitan parámetros de ajuste adecuados en el mercado real y se previenen los riesgos de optimización excesiva.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan

//@version=5
strategy(title="SMA with ATR", overlay=true)

smaLen = input.int(100, title="SMA Length")

atrLen     = input.int(10, title="ATR Length")
stopOffset = input.float(4, title="Stop Offset Multiple", step=0.25)


smaValue  = ta.sma(close, smaLen)
stopValue = ta.atr(atrLen) * stopOffset


lowerCloses = close < close[1] and 
     close[1] < close[2] and
     close[2] < close[3]

enterLong = close > smaValue and 
     lowerCloses


longStop = 0.0
longStop := if enterLong and strategy.position_size < 1
    close - stopValue
else
    math.max(close - stopValue, longStop[1])


higherCloses = close > close[1] and 
     close[1] > close[2] and
     close[2] > close[3]

enterShort = close < smaValue and 
     higherCloses


shortStop = 0.0
shortStop := if enterShort and strategy.position_size > -1
    close + stopValue
else
    math.min(close + stopValue, shortStop[1])


plot(smaValue, color=#4169e1, linewidth=2, title="SMA")

plot(strategy.position_size > 0 ? longStop : na, color=color.lime,
     style=plot.style_linebr, title="Long stop", linewidth=2)

plot(strategy.position_size < 0 ? shortStop : na, color=color.red,
     style=plot.style_linebr, title="Short stop", linewidth=2)


if enterLong
    strategy.entry("EL", strategy.long)

if enterShort
    strategy.entry("ES", strategy.short)


if strategy.position_size > 0
    strategy.exit("SL Long", from_entry="EL", stop=longStop)

if strategy.position_size < 0
    strategy.exit("SL Short", from_entry="ES", stop=shortStop)


if enterLong
    strategy.cancel("Exit Short")

if enterShort
    strategy.cancel("Exit Long")