Estrategia de cruce de medias móviles de precios


Fecha de creación: 2023-11-27 16:52:19 Última modificación: 2023-11-27 16:52:19
Copiar: 1 Número de Visitas: 677
1
Seguir
1617
Seguidores

Estrategia de cruce de medias móviles de precios

Descripción general

La estrategia es esencialmente una estrategia de cruce de líneas equilibradas. Se calcula el promedio móvil de los precios y se establece un promedio móvil a largo plazo determinado, que aumenta cuando el promedio móvil a corto plazo atraviesa el promedio móvil a largo plazo desde abajo; y baja cuando el promedio móvil a corto plazo atraviesa el promedio móvil a largo plazo desde arriba.

Principio de estrategia

La idea central de la estrategia de cruce de líneas de precio promedio es que los promedios móviles de los precios reflejen de manera efectiva la tendencia de los cambios en los precios. La estrategia genera señales de negociación al establecer promedios móviles de dos períodos diferentes y una cierta lógica de negociación para juzgar los cambios en la tendencia de la situación.

La estrategia calcula una media a largo plazo y una media a corto plazo. La línea larga determina la tendencia principal, la línea corta es utilizada para capturar las fluctuaciones a corto plazo en el proceso de la tendencia principal. La señal de negociación de la estrategia proviene principalmente de la cruz de la línea corta con la línea larga: la línea corta pasa por la línea larga como una señal múltiple y la línea corta pasa por la línea larga como una señal de vacío.

En concreto, la estrategia utiliza 7 tipos diferentes de promedios móviles, incluyendo SMA, EMA, VWMA, etc. El usuario puede elegir el tipo de promedio móvil. La longitud de los promedios móviles también puede ser configurada de manera flexible. Además, la estrategia ofrece un cierto límite de período de negociación y un mecanismo de administración de posiciones.

Análisis de las ventajas

Las principales ventajas de la estrategia de cruce de la línea media de precios son:

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

  2. La estrategia es sólida y está basada en un sistema de comercio equitativo bien comprobado y probado en el mercado.

  3. Los parámetros de la estrategia son flexibles y los usuarios pueden elegir los parámetros adecuados de acuerdo con su propio juicio y preferencias sobre el mercado.

  4. La estrategia tiene un mecanismo de control de riesgo que reduce el tiempo de retención de las pérdidas y evita la apertura innecesaria de posiciones invertidas.

  5. La estrategia contiene varios tipos de promedios móviles, y los usuarios pueden elegir el tipo de promedio móvil que mejor se adapte a su variedad de negociación.

  6. La estrategia apoya la apertura de la lógica de negociación en un período de tiempo específico para evitar fluctuaciones anormales en los principales mercados de vacaciones.

Análisis de riesgos

Si bien la estrategia de cruce de la línea media de precios tiene muchas ventajas, también hay ciertos riesgos en las operaciones reales, que se reflejan principalmente en los siguientes dos aspectos:

  1. Debido a que la mayoría de las medias móviles tienen retraso, las señales de cruce pueden aparecer después de que la inversión se haya completado y ser fácilmente bloqueadas.

  2. Si los parámetros no están configurados correctamente, las señales de cruce pueden ser demasiado frecuentes, lo que hace que la actividad de las transacciones sea demasiado alta y genere más costos de transacción.

Los riesgos mencionados pueden ser controlados y respondidos de la siguiente manera:

  1. Controlar el riesgo de pérdidas individuales mediante la fijación de un margen de pérdidas moderado.

  2. Aumentar las condiciones de filtrado, reducir la frecuencia de las transacciones y evitar el exceso de transacciones. Por ejemplo, establecer canales de precios o condiciones de amplitud de fluctuación de precios.

  3. Optimizar los parámetros de las medias móviles, seleccionar la combinación de parámetros que mejor se adapte a su variedad de operaciones y a su ciclo. Probar la estabilidad de la estrategia en diferentes condiciones de mercado.

Dirección de optimización

La estrategia de cruce de la media de precios tiene espacio para una mayor optimización, principalmente en los siguientes aspectos:

  1. Aumentar los mecanismos de protección en situaciones de hiperinflación, como la suspensión de la negociación en situaciones de fluctuaciones extremas de los precios, para evitar períodos anormales en el mercado.

  2. Aumentar las condiciones de filtración y combinar las señales de transacción para mejorar la calidad y la estabilidad de la señal. Por ejemplo, la combinación de otros indicadores técnicos para identificar cruces con una tendencia más fuerte.

  3. Sistema de parámetros dinámicos. Ajusta automáticamente la longitud de las medias móviles y los interruptores de negociación según las condiciones del mercado y las características de la variedad, en lugar de usar valores fijos.

  4. Aplicar esta señal de cruce de la media en estrategias avanzadas como el arbitraje multivariado compuesto. Combinar con otra información para la optimización de la estrategia en profundidad.

Estas recomendaciones pueden hacer que la estrategia sea más amplia, más eficaz y que se integre mejor el riesgo y la rentabilidad.

Resumir

Este artículo analiza y interpreta el código de la estrategia de cruzamiento lineal simple y uniforme de Noro’s CrossMA. Analizamos su pensamiento estratégico, su estructura de principios, sus principales ventajas y posibles direcciones de mejora. La estrategia en su conjunto es lógica clara, sencilla de usar, flexible para ajustar los parámetros y se puede adaptar a una variedad de entornos de negociación.

Código Fuente de la Estrategia
/*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")