Estrategia de stop loss dinámico con media móvil doble


Fecha de creación: 2024-02-05 13:45:51 Última modificación: 2024-02-05 13:45:51
Copiar: 0 Número de Visitas: 565
1
Seguir
1617
Seguidores

Estrategia de stop loss dinámico con media móvil doble

Descripción general

Esta estrategia calcula un promedio móvil de dos parámetros diferentes para generar una señal de compra cuando la línea rápida atraviesa la línea lenta. Al mismo tiempo, utiliza el rango de fluctuación real promedio para rastrear el precio de parada y genera una señal de venta cuando el precio cae por debajo de ese precio de parada.

Principio de estrategia

  1. Promedio móvil rápido (EMA): el parámetro es el promedio móvil de 12 días del índice, capaz de responder rápidamente a los cambios de precios.
  2. Media móvil lenta ((SMA): el parámetro es el promedio móvil simple de 45 días, que representa la tendencia a largo plazo.
  3. Cuando una media móvil rápida cruza una media móvil lenta, se genera una señal de compra.
  4. Calcula el promedio de fluctuaciones reales de 15 días (ATR) como referencia de stop loss.
  5. Establezca un seguimiento de la amplitud de los paros en función del valor ATR (por ejemplo, 6 veces el ATR) y actualice el precio de parada en tiempo real.
  6. Cuando el precio está por debajo del precio de parada, se genera una señal de venta.

La estrategia combina el seguimiento de tendencias y el manejo de stop loss, ya que permite tanto el seguimiento de la dirección de la línea media como el control de las pérdidas individuales mediante el stop loss.

Análisis de las ventajas

  1. La combinación de medias móviles permite identificar tendencias de manera eficiente y aumentar la fiabilidad de la señal.
  2. El seguimiento dinámico de los paros permite detener los pérdidos a tiempo y evitar el ataque de la fuerza financiera.
  3. La combinación de los paros ATR hace que el precio de los paros sea razonable y evita que sea demasiado sensible.
  4. La estrategia es clara y fácil de entender, los parámetros se ajustan con flexibilidad.

Análisis de riesgos

  1. El promedio móvil está retrasado y puede haber perdido la oportunidad de acortar.
  2. El deterioro de las pérdidas por exceso de flexibilidad puede afectar la rentabilidad.
  3. El cierre de pérdidas demasiado sensible puede aumentar la frecuencia de las transacciones y la carga de las comisiones.
  4. Los cambios en la volatilidad de las acciones pueden afectar la estabilidad de los parámetros ATR.

Los parámetros de las medias móviles se pueden optimizar adecuadamente, o se puede ajustar el multiplicador ATR para equilibrar el stop loss. También se puede combinar con otros indicadores como condiciones de filtración para mejorar el tiempo de entrada.

Dirección de optimización

  1. Prueba más combinaciones de parámetros para seleccionar la mejor media móvil.
  2. Ajuste el parámetro multiplicador del ATR para detener el riesgo según las características de las diferentes acciones.
  3. Aumentar las condiciones de filtración, como los indicadores de precio y cantidad, para evitar transacciones innecesarias.
  4. Acumular más pruebas de datos históricos para verificar la estabilidad de los parámetros.

Resumir

Esta estrategia combina con éxito el seguimiento de tendencias de las medias móviles y el stop loss dinámico de ATR, que se puede adaptar a las diferentes características de las acciones a través de la optimización de los parámetros. La estrategia forma un límite de compra y un límite de stop loss claro y claro, lo que hace que la lógica de la negociación sea simple. En general, la estrategia de stop loss de seguimiento de las medias móviles es estable, simple y fácil de optimizar y se adapta a la estrategia básica de negociación de acciones.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//created by XPloRR 24-02-2018

strategy("XPloRR MA-Buy ATR-MA-Trailing-Stop Strategy",overlay=true, initial_capital=1000,default_qty_type=strategy.percent_of_equity,default_qty_value=100)

testStartYear = input(2005, "Start Year")
testStartMonth = input(1, "Start Month")
testStartDay = input(1, "Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2050, "Stop Year")
testStopMonth = input(12, "Stop Month")
testStopDay = input(31, "Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriodBackground = input(title="Background", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

emaPeriod = input(12, "Exponential MA")
smaPeriod = input(45, "Simple MA")
stopPeriod = input(12, "Stop EMA")
delta = input(6, "Trailing Stop #ATR")

testPeriod() => true

emaval=ema(close,emaPeriod)
smaval=sma(close,smaPeriod)
stopval=ema(close,stopPeriod)
atr=sma((high-low),15)

plot(emaval, color=blue,linewidth=1)
plot(smaval, color=orange,linewidth=1)
plot(stopval, color=lime,linewidth=1)

long=crossover(emaval,smaval) 
short=crossunder(emaval,smaval)

//buy-sell signal
stop=0
inlong=0
if testPeriod()
    if (long and (not inlong[1]))
        strategy.entry("buy",strategy.long)
        inlong:=1
        stop:=emaval-delta*atr
    else
        stop:=iff((nz(emaval)>(nz(stop[1])+delta*atr))and(inlong[1]),emaval-delta*atr,nz(stop[1]))
        inlong:=nz(inlong[1])
        if ((stopval<stop) and (inlong[1]))
            strategy.close("buy")
            inlong:=0
            stop:=0
else
    inlong:=0
    stop:=0
plot(stop,color=green,linewidth=1)