Estrategia de seguimiento de tendencias basada en SMA y ATR

El autor:¿ Qué pasa?, Fecha: 2024-01-18 16:04:51
Las etiquetas:

img

I. Nombre de la estrategia

La estrategia se llamaEstrategia de seguimiento de tendencias basada en SMA y ATR.

II. Resumen de la estrategia

Esta estrategia utiliza el indicador SMA para determinar la dirección de la tendencia del precio y establece posiciones de stop loss con el indicador ATR para rastrear la tendencia.

III. Principio de la estrategia

1. Señales de entrada

(1) Ir largo cuando el precio de cierre sube y es superior a la SMA.
(2) Ir corto cuando el precio de cierre cae y es inferior al SMA.

2. Detener el ajuste de pérdidas

Se utilizará el valor del indicador ATR multiplicado por el múltiplo de pérdida de parada establecido como posición de pérdida de parada.

3. Detener la actualización de pérdida

Después de que cada barra se cierre, compruebe la posición de stop loss y actualizarla a un valor de stop loss más cercano al precio actual.

4. Señales de salida

Activar el stop loss cuando el precio toque la línea de stop loss.

IV. Ventajas de la estrategia

1. Fuerte capacidad de seguimiento de tendencias

La configuración dinámica de stop loss del indicador ATR permite el seguimiento automático de las tendencias.

2. Controlar bien el consumo

Las reglas estrictas de stop loss ayudan a controlar el desembolso máximo por operación.

3. Configuración de parámetros sencilla

Sólo 3 parámetros hacen el ajuste y la optimización fácil.

V. Riesgos de la estrategia

1. El riesgo de que el stop loss sea demasiado flexible

Si el múltiple de stop loss se establece demasiado alto, la posición de stop loss puede estar demasiado floja, aumentando así el drawdown.

2. Riesgos de una fuga falsa

Las falsas rupturas de precios pueden llevar a perder la dirección de la tendencia.

Los riesgos de la optimización de parámetros

La dependencia excesiva de la optimización de parámetros puede conducir al ajuste de curvas.

VI. Direcciones para la optimización de la estrategia

1. Optimizar el algoritmo de stop loss

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

2. Añadir señales de filtro

Se pueden añadir otros indicadores para filtrar las falsas rupturas, por ejemplo, añadiendo condiciones de volumen de operaciones.

Evaluar la estabilidad de los parámetros

Historial de pruebas retroactivas para evaluar la adaptabilidad de los parámetros a diferentes productos y plazos.

VII. Resumen

La idea general de esta estrategia es clara. Juzga la dirección de la tendencia a través de SMA y utiliza ATR para rastrear las tendencias con un buen control de descenso. Es adecuado para el comercio de tendencias a mediano y largo plazo. Pero los parámetros aún necesitan un ajuste adecuado en el comercio en vivo, y se deben evitar los riesgos de sobre-optimización.


/*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")


Más.