Estrategia de negociación cuantitativa de cruz de oro cruz muerta

El autor:¿ Qué pasa?, Fecha: 2024-02-02 14:46:11
Las etiquetas:

img

Resumen general

Esta estrategia calcula los cruces de la media móvil simple de 30 días (MA30) y de la media móvil simple de 200 días (MA200) de XAUUSD (oro) para implementar compras cruzadas de oro y ventas cruzadas de oro.

Principio de la estrategia

Los indicadores centrales de esta estrategia son MA30 y MA200. Cuando MA30 cruza por encima de MA200, se genera una señal de compra. Cuando MA30 cruza por debajo de MA200, se genera una señal de venta. Estos cruces se llaman cruces doradas y cruces muertas.

Específicamente, la estrategia utiliza la biblioteca ta para calcular MA30 y MA200. Las funciones ta.crossover y ta.crossunder luego juzgan si se cruzan. Cuando ocurre un cruce ascendente (cruz dorada), el valor de la condición larga se establece en verdad para comprar. Cuando ocurre un cruce descendente (cruce muerto), el valor de la condición corta se establece en verdad para vender.

Para la ejecución de órdenes, los precios de stop loss y take profit de 40,000 puntos cada uno se establecen para operaciones largas y cortas. Esto corresponde a un cambio de precio de 4,000 puntos en XAUUSD. Cuando el precio activa el stop loss o take profit, las órdenes cerrarán posiciones automáticamente.

Además, se establece un mecanismo de cobertura en la estrategia. Si la posición actual es larga, una señal de cruz muerta posterior aplanará directamente la posición y la revertirá. Si la posición actual es corta, una señal de cruz de oro posterior también aplanará y revertirá directamente la posición. Esto evita grandes pérdidas durante las reversiones de tendencia.

Ventajas

Se trata de una estrategia de tendencia muy simple e intuitiva, que tiene las siguientes ventajas:

  1. Reglas claras y fáciles de aplicar.
  2. Aplicable a múltiples plazos para operaciones diarias y a largo plazo.
  3. Se alinea con los ciclos del mercado y captura las reversiones de tendencia.
  4. Establece el mecanismo de salida automática con stop loss/profit para controlar la pérdida de una sola operación.
  5. Establece una cobertura para evitar pérdidas por reversiones de tendencia.

Análisis de riesgos

Esta estrategia tiene algunos riesgos:

  1. Los indicadores de MA están rezagados y pueden perder la mejor entrada para inversiones de tendencia a corto plazo.
  2. La configuración incorrecta de stop loss puede provocar una salida prematura de las operaciones.
  3. Demasiadas señales inversas aumentan el comercio innecesario.
  4. La estrategia tiene requisitos de capital para soportar los recortes.

Estos riesgos se pueden gestionar mediante la optimización de parámetros, el ajuste de los niveles de stop loss, el filtrado de señales inversas, etc.

Optimización

La estrategia puede optimizarse de varias maneras:

  1. Optimizar los parámetros de MA utilizando EMA o medias móviles ponderadas.
  2. Añadir otros filtros como volumen, indicadores de volatilidad, etc.
  3. Se habilitará el mecanismo de cobertura solo en señales significativas.
  4. Establecer el tamaño de la posición para una mejor eficiencia del capital.
  5. Optimizar dinámicamente las paradas/beneficios utilizando algoritmos de aprendizaje automático.

El ajuste de parámetros, la adición de filtros, el tamaño de posición, etc. pueden mejorar aún más la estabilidad de la estrategia.

Conclusión

Esta es una estrategia de cruce de promedios móviles simple y práctica. Se alinea con los ciclos del mercado, controla el riesgo a través de salidas automáticas de stop loss / ganancias y mecanismos de cobertura. Es fácil de entender e implementar, es aplicable a múltiples productos y marcos de tiempo.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia de Cruce de Medias Móviles", overlay=true)

// Medias móviles
ma30 = ta.sma(close, 30)
ma60 = ta.sma(close, 60)
ma200 = ta.sma(close, 200)

// Cruce de medias móviles
crossoverUp = ta.crossover(ma30, ma200)
crossoverDown = ta.crossunder(ma30, ma200)

// Señales de compra y venta
longCondition = crossoverUp
shortCondition = crossoverDown

// Ejecución de órdenes
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Cover", "Buy", stop=close - 40.000, limit=close + 40.000)
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", stop=close + 40.000, limit=close - 40.000)

// Plot de las medias móviles
plot(ma30, color=color.blue, title="MA 30")
plot(ma60, color=color.orange, title="MA 60")
plot(ma200, color=color.green, title="MA 200")

// Condiciones para cerrar la posición contraria
if (strategy.position_size > 0)
    if (crossoverDown)
        strategy.close("Buy")
if (strategy.position_size < 0)
    if (crossoverUp)
        strategy.close("Sell")

Más.