Estrategia de negociación cuantitativa basada en la nube de Ichimoku y la media móvil

El autor:¿ Qué pasa?, Fecha: 2024-02-20 17:12:35
Las etiquetas:

img

Resumen general

Esta estrategia combina el indicador Ichimoku Cloud y el indicador de promedio móvil para implementar una estrategia de negociación cuantitativa simple. Genera señales de compra cuando la línea de conversión está por encima de la línea de base y el precio de cierre está por encima de la línea de conversión. Genera señales de venta cuando la línea de conversión está por debajo de la línea de base y el precio de cierre está por debajo de la línea de conversión. La estrategia es adecuada para el comercio a corto plazo de activos de alta volatilidad como las criptomonedas.

Estrategia lógica

La nube de Ichimoku contiene tres líneas: la línea de conversión, la línea base y el lapso de retraso. La línea de conversión representa el precio promedio a corto plazo y la línea base representa el precio promedio a largo plazo. El lapso de retraso es generalmente el promedio de la conversión y las líneas base. Cuando el promedio a corto plazo es mayor que el promedio a largo plazo, indica una tendencia al alza.

La Nube Ichimoku también contiene dos líneas principales: Leading Span A y Leading Span B. Representan el rango promedio de fluctuaciones de precios en diferentes períodos.

Esta estrategia utiliza la línea de conversión para determinar la dirección general de la tendencia y las líneas principales para medir el impulso. Genera señales comerciales basadas en la tendencia, el impulso y los precios de cierre.

Ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. Utiliza una combinación de indicadores para proporcionar señales confiables.
  2. Sólo entra en las fugas sólidas para evitar señales falsas.
  3. Adecuado para la negociación a corto plazo de activos volátiles con un alto potencial de ganancia.
  4. Una lógica sencilla que es fácil de entender y modificar.
  5. Fácilmente extensible a un modelo multifactorial con más indicadores.

Los riesgos

Los principales riesgos de esta estrategia son:

  1. Necesitas poner el stop loss para controlar las pérdidas por operación.
  2. El riesgo de reversión del precio. El precio puede revertirse después de que se activa la señal. Puede aflojar las condiciones de retención para reducir este riesgo.
  3. Los resultados son sensibles a los parámetros, necesitamos pruebas combinatorias exhaustivas para encontrar lo óptimo.
  4. Puede funcionar muy bien históricamente pero fallar en el comercio real.

Oportunidades de mejora

Algunas formas en que se puede mejorar esta estrategia:

  1. Prueba combinaciones de más indicadores como KDJ, BOLL, MACD para encontrar mejores parámetros.
  2. Incorporar mecanismos de stop loss como movimiento de stop loss o x veces atr.
  3. Optimizar los filtros de entrada con volumen, volatilidad, etc.
  4. Aumentar las normas de tenencia mediante la reducción del período de tenencia o el aumento del objetivo de obtención de beneficios.
  5. Introduzca el aprendizaje automático para encontrar combinaciones óptimas de parámetros utilizando redes neuronales.

Conclusión

En resumen, esta es una estrategia de negociación cuantitativa muy simple que combina Ichimoku Cloud y promedio móvil para determinar la tendencia y el impulso de las señales comerciales. Es adecuado para el comercio de activos volátiles a corto plazo con un buen potencial de ganancia.


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

//@version=5
strategy("Ichimoku Cloud + ema 50 Strategy", overlay=true)

len = input.int(50, minval=1, title="Length")
src = input(close, title="Source")
out = ta.ema(src, len)

conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(1, minval=1, title="Lagging Span")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
     title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
     title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

plot(out, title="EMA", color=color.white)

// Condition for Buy Signal
buy_signal = close > out and leadLine1 > leadLine2

// Condition for Sell Signal
sell_signal = close < out and leadLine2 > leadLine1

// Strategy entry and exit conditions
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Exit long position if candle closes below EMA 50
if (strategy.opentrades > 0)
    if (close < out)
        strategy.close("Buy")

// Exit short position if candle closes above EMA 50
if (strategy.opentrades < 0)
    if (close > out)
        strategy.close("Sell")


Más.