Estrategia de precios de media móvil cruzada

El autor:¿ Qué pasa?, Fecha: 2023-11-27 16:52:19
Las etiquetas:

img

Resumen general

Esta estrategia es esencialmente una estrategia cruzada de media móvil. Al calcular la media móvil de los precios y establecer ciertas medias móviles a corto y largo plazo, vaya largo cuando la media móvil a corto plazo cruce por encima de la media móvil a largo plazo desde abajo; vaya corto cuando la media móvil a corto plazo cruce por debajo de la media móvil a largo plazo desde arriba.

Principios

La idea central de la estrategia cruzada de la media móvil de precios es: la media móvil del precio puede reflejar efectivamente la tendencia del cambio de precio.

La estrategia calcula una media móvil a largo plazo y una a corto plazo. La línea larga juzga principalmente la tendencia principal, y la línea corta se utiliza para capturar las fluctuaciones a mediano plazo durante la tendencia principal. Las señales comerciales de la estrategia provienen principalmente del cruce de la línea corta sobre la línea larga: la señal larga cuando la línea corta cruza por encima de la línea larga, y la señal corta cuando la línea corta cruza por debajo. Además, la estrategia filtra las señales para evitar señales falsas.

Específicamente, la estrategia utiliza 7 tipos diferentes de promedios móviles, incluidos SMA, EMA, VWMA, etc. Los usuarios pueden seleccionar el tipo de promedio móvil. La longitud del promedio móvil también se puede establecer de manera flexible. Además, la estrategia también proporciona restricciones en ciertos períodos de tiempo de negociación y mecanismos de gestión de posiciones. A través de estos ajustes, los usuarios pueden ajustar flexiblemente los parámetros de la estrategia para adaptarse a diferentes variedades y entornos de mercado.

Análisis de ventajas

Las principales ventajas de la estrategia cruzada de la media móvil de precios son las siguientes:

  1. La lógica de la estrategia es clara y simple, fácil de entender e implementar, adecuada para que los principiantes aprendan.

  2. El principio de la estrategia es sólido, se basa en reglas totalmente verificadas de la media móvil de negociación, y ha sido probado en la práctica en los mercados.

  3. Los parámetros de la estrategia son flexibles y ajustables, y los usuarios pueden elegir los parámetros adecuados según sus propios juicios y preferencias en el mercado.

  4. La estrategia cuenta con determinados mecanismos de control de riesgos para reducir el tiempo de retención de órdenes perdedoras y evitar posiciones invertidas innecesarias.

  5. La estrategia contiene varios tipos de promedios móviles. Los usuarios pueden seleccionar el tipo de promedio móvil más adecuado para sus variedades comerciales.

  6. La estrategia apoya la habilitación de la lógica de negociación durante períodos de tiempo de negociación específicos para evitar fluctuaciones anormales en los principales mercados vacacionales.

Análisis de riesgos

Aunque la estrategia cruzada de la media móvil de precios tiene muchas ventajas, todavía existen algunos riesgos en la negociación real, que se reflejan principalmente en los dos aspectos siguientes:

  1. Debido al retraso de la mayoría de las medias móviles, las señales cruzadas pueden aparecer en la etapa posterior después de que se complete la inversión de precios, lo que es fácil de atrapar.

  2. En caso de ajustes incorrectos de los parámetros, las señales cruzadas pueden ser demasiado frecuentes, lo que resulta en una actividad comercial demasiado alta y en mayores costes comerciales.

En respuesta a los riesgos mencionados anteriormente, los controles y los métodos de control se aplican de las siguientes maneras:

  1. Controlar el riesgo de pérdida única mediante el establecimiento de un intervalo de stop loss adecuado.

  2. Reducir la frecuencia de las operaciones y evitar el exceso de operaciones mediante la adición de condiciones de filtro, por ejemplo, establecer condiciones de canal de precios o de rango de fluctuación de precios.

  3. Optimice los parámetros de la media móvil para seleccionar la combinación más adecuada de parámetros para sus propias variedades y ciclos de negociación.

Optimización

La estrategia de cruce de la media móvil de precios aún puede optimizarse en los siguientes aspectos:

  1. Aumentar el mecanismo de protección en condiciones extremas de mercado, por ejemplo, suspender temporalmente las operaciones durante las violentas fluctuaciones de precios para evitar condiciones anormales de mercado.

  2. Aumentar las condiciones de filtro y combinar las señales comerciales para mejorar la calidad y la estabilidad de las señales, por ejemplo, identificar los cruces de tendencia combinados con otros indicadores técnicos.

  3. Adopte un sistema de parámetros dinámicos. De acuerdo con las condiciones del mercado y las características de las variedades, ajuste automáticamente los parámetros clave como la longitud media móvil, el interruptor de negociación, etc. en lugar de usar valores fijos.

  4. Aplique esta señal de cruce de promedio móvil en estrategias avanzadas como el arbitraje de variedad compuesta. Combínalo con otra información para una optimización profunda de la estrategia.

Estas sugerencias anteriores pueden ampliar el entorno aplicable y la eficacia de esta estrategia y lograr una mejor compensación entre riesgo y beneficio.

Conclusión

Este artículo hace un análisis detallado de código e interpretación de la estrategia de cruce de promedio móvil simple - Noros CrossMA. Analizamos su idea de estrategia, estructura de principios, principales ventajas y posibles direcciones de mejora. En general, esta estrategia tiene una lógica clara y es simple y práctica. El ajuste flexible de parámetros puede adaptarse a muchos entornos comerciales. También analizamos los problemas y riesgos existentes en la estrategia y damos consejos específicos. Se cree que a través de este análisis y discusiones integrales, los operadores pueden comprender mejor este tipo de estrategias y ayudarlos a optimizar continuamente los sistemas comerciales reales.


/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's CrossMA", shorttitle = "CrossMA", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0, commission_value = 0.1)

needlong = input(true, "long")
needshort = input(true, "short")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
type = input(defval = "SMA", options = ["SMA", "EMA", "VWMA", "DEMA", "TEMA", "KAMA", "PCMA"], title = "MA type")
src = input(close, defval = close, title = "MA Source")
len = input(30, defval = 30, minval = 1, title = "MA length")
off = input(00, defval = 00, minval = 0, title = "MA offset")
anti = input(true, defval = true, title = "Anti-saw filter")
showma = input(true, defval = true, title = "Show MA")
showbg = input(false, defval = false, title = "Show background")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//DEMA
dema = 2 * ema(src, len) - ema(ema(close, len), len)

//TEMA
xPrice = close
xEMA1 = ema(src, len)
xEMA2 = ema(xEMA1, len)
xEMA3 = ema(xEMA2, len)
tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3

//KAMA
xvnoise = abs(src - src[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src - src[len])
nnoise = sum(xvnoise, len)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2)
kama = 0.0
kama := nz(kama[1]) + nsmooth * (src - nz(kama[1]))

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

sma_1 = sma(src, len)
ema_1 = ema(src, len)
vwma_1 = vwma(src, len)
ma2 = type == "SMA" ? sma_1 : type == "EMA" ? ema_1 : type == "VWMA" ? vwma_1 : type == "DEMA" ? dema : type == "TEMA" ? tema : type == "KAMA" ? kama : type == "PCMA" ? center : 0
ma = ma2[off]

macol = showma ? color.blue : na
plot(ma, color = macol, linewidth = 3, transp = 0)

//Background
trend = 0
trend := anti == false and close > ma ? 1 : anti == false and close < ma ? -1 : low > ma ? 1 : high < ma ? -1 : trend[1]
bgcol = showbg ? trend == 1 ? color.lime : trend == -1 ? color.red : na : na
bgcolor(bgcol, transp = 70)

//Trading
size = strategy.position_size
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
if trend == 1 and trend[1] == -1
    strategy.entry("Long", strategy.long, lot, when = needlong and truetime)
if trend == -1 and trend[1] == 1
    strategy.entry("Short", strategy.short, lot, when = needshort and truetime)
if size > 0 and needshort == false and trend == -1
    strategy.close_all()
if size < 0 and needlong == false and trend == 1
    strategy.close_all()
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")

Más.