Estrategia de cruz dorada y cruz de la muerte con media móvil doble


Fecha de creación: 2023-09-17 22:35:07 Última modificación: 2023-09-17 22:35:07
Copiar: 1 Número de Visitas: 626
1
Seguir
1617
Seguidores

La estrategia consiste en calcular los promedios móviles de dos períodos diferentes y formar las señales de compra y venta en función de su horquilla dorada.

Principio de estrategia

La estrategia primero permite al usuario elegir el tipo y la duración de la media móvil. Los tipos incluyen SMA, EMA, VWMA, etc., mientras que la longitud determina el período de la media.

Luego se calculan dos promedios móviles según la elección del usuario. Si la línea rápida atraviesa la línea lenta desde abajo, formando un tenedor, se genera una señal de compra. Si la línea rápida atraviesa la línea lenta desde arriba y abajo, formando un tenedor muerto, se genera una señal de venta.

Así, cuando el precio medio a corto plazo es superior al precio medio a largo plazo, se considera que el mercado está en tendencia al alza y se debe comprar. Cuando el precio a corto plazo es inferior al precio a largo plazo, se considera que el mercado está en tendencia a la baja y se debe vender.

Análisis de las ventajas

  • La lógica de la estrategia es simple, clara y fácil de entender.
  • Los promedios móviles filtran el ruido del mercado y identifican las tendencias.
  • El tipo y los parámetros de las medias móviles se pueden elegir con flexibilidad para adaptarse a diferentes variedades y períodos.
  • Se puede optimizar fácilmente a través de una combinación de indicadores.

Análisis de riesgos

  • Cuando el mercado está en un estado de agitación, puede haber varias señales falsas.
  • La elección incorrecta de los parámetros puede causar un mal desempeño de la estrategia.
  • La señal se retrasa y no se capta el punto de inflexión a tiempo.
  • El riesgo de choque de la situación ante un evento inesperado.

Se puede controlar el riesgo mediante la optimización adecuada de los parámetros, la combinación de otras señales de generación de indicadores, el establecimiento de paradas de stop loss, etc.

Dirección de optimización

  • Prueba diferentes tipos y longitudes de parámetros para encontrar la combinación óptima de parámetros.
  • Se añaden filtros para otros indicadores, como indicadores de precio y fluctuación, etc.
  • Aumento de la lógica de detención de pérdidas y reducción de la retirada.
  • La combinación de indicadores de tendencias evita un entorno de negociación inadecuado.
  • Optimizar las estrategias de gestión de capital, como la gestión de posiciones, el presupuesto de riesgos, etc.

Resumir

La idea general de la estrategia es simple y clara, la formación de señales de negociación mediante el cálculo de dos líneas de equilibrio, los parámetros de ajuste flexible en función de la situación del mercado, y otras combinaciones de estrategias optimizadas, pero se debe tener en cuenta la prevención de riesgos de los mercados turbulentos, la gestión racional de fondos. En general, es una opción que vale la pena considerar.

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

//@version=2
strategy(title = "Noro's MAs Tests", shorttitle = "MAs tests", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)


len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length")
type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type")
src = input(close, defval = close, title = "Source")

//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 = nz(kama[1]) + nsmooth * (src - nz(kama[1]))

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

ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0

plot(ma, color = blue, linewidth = 3, transp = 0)

trend = low > ma ? 1 : high < ma ? -1 : trend[1]

longCondition = trend == 1 and trend[1] == -1
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = trend == -1 and trend[1] == 1
if (shortCondition)
    strategy.entry("Short", strategy.short)