
Esta estrategia se llamaEstrategia de seguimiento de tendencias basada en SMA y ATR。
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.
(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
Utilice el valor del indicador ATR multiplicado por el multiplicador de stop loss establecido como posición 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.
El precio toca el límite de pérdida y se retira activamente.
La configuración de stop loss dinámico que utiliza el indicador ATR permite el seguimiento automático de la tendencia.
Las estrictas reglas de stop loss ayudan a controlar el máximo retiro de una sola transacción.
Sólo 3 parámetros para su ajuste y optimización.
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.
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.
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.
Se pueden probar otros tipos de algoritmos de stop loss, como el stop loss móvil, el stop loss proporcional, etc.
Se pueden añadir otros indicadores de filtración de brechas falsas. Por ejemplo, el aumento de las condiciones de volumen de transacción.
Evaluar la adaptabilidad de los parámetros a diferentes variedades y ciclos a través de la retroalimentación histórica.
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.
/*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")