Estrategia de inversión de media móvil doble


Fecha de creación: 2023-10-24 10:56:08 Última modificación: 2023-10-24 10:56:08
Copiar: 0 Número de Visitas: 589
1
Seguir
1617
Seguidores

Estrategia de inversión de media móvil doble

Descripción general

La estrategia utiliza principalmente el doble de las medias móviles como una señal de compra y venta, para obtener ganancias cuando la tendencia se invierte. Hacer más cuando se cruza la media móvil de largo plazo por encima de las medias móviles de corto plazo, y hacer un descuento cuando se cruza la media móvil de largo plazo por debajo de las medias móviles de corto plazo, es una estrategia de seguimiento de pérdidas común.

Principio de estrategia

La estrategia comienza con dos medias móviles, una de 20 días más corta y otra de 60 días más larga. La entrada se decide a partir de la intersección de las medias de corto y largo plazo.

Concretamente, cuando el corto promedio se cruza en la media de largo plazo, significa que se encuentra en una tendencia ascendente, y hace más; cuando el corto promedio se cruza por debajo de la media de largo plazo, significa que se encuentra en una tendencia descendente, y hace hueco.

La forma de detener una pérdida después de hacer más descubiertos es el seguimiento de la pérdida, de acuerdo con el precio más alto y el precio más bajo para trailing stop, se puede bloquear la máxima ganancia.

La lógica principal del código es la siguiente:

  1. Calcular el EMA de 20 días y el EMA de 60 días
  2. En el caso de los EMA de 60 días, se puede hacer más.
  3. En el caso de un EMA de 60 días, no se puede hacer nada.
  4. Después de entrar en una posición de más, el 3% del precio más alto como línea de parada
  5. Después de entrar en una posición de descubierto, el 3% del precio mínimo como línea de pérdida
  6. Ajuste continuo de la línea de pérdidas al mantener posiciones

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. La idea es sencilla, fácil de entender y de llevar a cabo.
  2. El uso de una doble línea de equilibrio puede filtrar eficazmente las brechas falsas.
  3. El uso de un tracker de stop loss para bloquear el máximo de ganancias.
  4. El sistema de captura de señales de cambio de tendencia es muy eficiente.
  5. La retirada está bien controlada y relativamente estable.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. Cuando la tendencia no es clara, las líneas medias dobles pueden cruzarse con frecuencia, lo que provoca pérdidas de operaciones frecuentes.
  2. El ajuste incorrecto de los rangos de parada puede llevar a una parada demasiado suave o demasiado radical.
  3. Si el parámetro se ajusta incorrectamente, la duración del ciclo puede causar que se pierda el punto clave de la señal.
  4. Los altos costos de transacción afectan el margen de ganancias.

En cuanto al riesgo, se puede optimizar de la siguiente manera:

  1. Cuando la tendencia no es clara, se debe utilizar un sistema de filtración para evitar el comercio a ciegas.
  2. Optimización de la prueba de los límites de deterioro y configuración de los límites de deterioro adecuados.
  3. La configuración de los parámetros óptimos se encuentra a través de retroalimentación y ajuste de parámetros.
  4. Reducir adecuadamente el número de corredores y reducir los costos de transacción.

Optimización de las ideas

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Se añaden filtros de otros indicadores para formar un mecanismo de entrada con múltiples condiciones y evitar falsas rupturas. Por ejemplo, se puede agregar la determinación del indicador RSI.

  2. Optimización de los parámetros de ciclo de la media móvil para encontrar la combinación óptima de parámetros. Se pueden probar diferentes parámetros de ciclo mediante un recorrido por pasos.

  3. Optimización de los límites de pérdidas. Se puede calcular el límite óptimo de pérdidas a partir de los datos de retroalimentación. También se puede configurar un límite de pérdidas dinámico.

  4. Configurar el mecanismo de reingreso. Después de la salida de la parada de pérdidas, se puede configurar una lógica de reingreso razonable para reducir el número de operaciones.

  5. En combinación con los indicadores de tendencia, se suspende la negociación cuando la tendencia no es evidente, para evitar que la negociación sea nula.

  6. Participar en el mecanismo de gestión de posiciones y ajustar las posiciones y los límites de pérdidas en función de la situación del mercado.

Resumir

La estrategia de inversión de las medias móviles dobles es sencilla y práctica en general, y es un método común y efectivo para determinar los puntos de inflexión de la tendencia a través de dos líneas de equilibrio. Sin embargo, existe un cierto riesgo, que requiere pruebas de optimización de la configuración de los parámetros y el rango de parada, y el uso de otros indicadores de filtración en combinación, para que la estrategia tenga la máxima eficacia.

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


//@version=2
strategy("Noro's Bands Scalper Strategy v1.4", shorttitle = "Scalper str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needbe = input(true, defval = true, title = "Bands Entry")
needct = input(false, defval = false, title = "Counter-trend entry")
needdb = input(true, defval = true, title = "Double Body")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2")
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band 1")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band 1")
plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Body
body = abs(close - open)
smabody = needdb == false ? ema(body, 30) : ema(body, 30) * 2
candle = high - low

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and bar == -1)) ? 1 : 0
dn7 = trend == 1 and ((bar == 1 and bar[1] == 1) or (close > hd and needbe == true)) and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and ((bar == -1 and bar[1] == -1) or (close < ld2 and needbe == true)) and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and bar == 1)) ? 1 : 0

if up7 == 1 or up8 == 1 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)