Estrategia de trading cuantitativo basada en el gráfico de nubes de Ichimoku


Fecha de creación: 2024-01-12 14:20:43 Última modificación: 2024-01-12 14:20:43
Copiar: 0 Número de Visitas: 680
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo basada en el gráfico de nubes de Ichimoku

Descripción general

Esta estrategia, basada en el indicador de gráficos en la nube de Ichimoku, diseña un sistema de comercio cuantitativo, principalmente para activos con una buena tendencia. La estrategia combina funciones como stop loss, stop loss y tracking stop loss, con el objetivo de lograr un beneficio estable.

Principio de estrategia

El gráfico de la nube de Ichimoku está formado por la línea de conversión, la línea de referencia, la línea de frontera 1, la línea de frontera 2 y el gráfico de la nube. Las señales de transacción de esta estrategia provienen de la relación entre el precio y el gráfico de la nube. En concreto, se produce una señal de compra cuando el precio sube cruzando la línea de frontera 1 y se produce una señal de venta cuando el precio baja cruzando la línea de frontera 1. Además, la línea de frontera 2 también sirve como un indicador auxiliar de juicio.

Esta estrategia también establece paradas y paradas de pérdidas basadas en el indicador ATR. El indicador ATR puede capturar eficazmente la volatilidad del mercado. El parón es 2 veces el ATR y el parón es 4 veces el ATR. Esto puede controlar eficazmente las pérdidas individuales y bloquear parte de las ganancias.

Finalmente, la estrategia utiliza un mecanismo de seguimiento de los estancamientos. En concreto, para hacer más órdenes, se utiliza el doble de ATR como retroceso y se ajusta la línea de detención en tiempo real para bloquear los beneficios; para hacer órdenes aéreas, se utiliza el doble de ATR como retroceso y se ajusta la línea de detención en tiempo real para bloquear los beneficios.

Análisis de las ventajas estratégicas

  1. El indicador de gráficos en la nube de Ichimoku capta las tendencias de manera eficiente
  2. El control de riesgo se realiza mediante un parón de pérdidas en combinación con el indicador ATR
  3. El sistema de trazabilidad de los stop-losses es muy bueno para bloquear las ganancias.
  4. La lógica de la estrategia es simple, clara, fácil de entender y verificar
  5. Parametrizaciones ajustables según el mercado

Análisis de riesgos

  1. El mapa de la nube de Ichimoku es sensible a la configuración de parámetros, y una configuración inadecuada puede perder oportunidades de negociación o generar señales erróneas
  2. Si la configuración es demasiado grande, puede detenerse prematuramente
  3. Las acciones fuertes pueden romper la línea de stop loss dada por el indicador ATR o seguir la línea de stop loss
  4. Los costos de transacción también tienen un impacto en la rentabilidad.

Resolvemos el riesgo:

  1. Optimización de los parámetros del mapa de la nube de Ichimoku para encontrar la configuración más adecuada
  2. Evaluar el alcance razonable de la pérdida de seguimiento, que no puede ser demasiado grande ni demasiado pequeña
  3. Se puede permitir un margen de amortización adecuado para las acciones fuertes
  4. Opte por un agente de bolsa con tarifas bajas

Dirección de optimización de la estrategia

  1. Filtración de señales en combinación con otros indicadores técnicos para reducir las transacciones erróneas
  2. Optimización de los parámetros basados en datos históricos / retroalimentación
  3. La configuración de los parámetros de las diferentes variedades se puede optimizar por separado
  4. Se puede considerar el ajuste dinámico de los límites de pérdidas
  5. Ingeniería de características en combinación con algoritmos para crear señales de negociación más confiables

Resumir

En general, esta estrategia es una estrategia de seguimiento de tendencias estable. La dirección de la tendencia se basa en los indicadores de la gráfica en la nube de Ichimoku; el uso de los indicadores ATR para establecer paradas de pérdidas; La adopción de paradas de seguimiento para bloquear ganancias.

Código Fuente de la Estrategia
/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ichimoku Cloud Strategy with SL, TP, and Trailing Stop", overlay=true)

conversionPeriods = input(9, "Conversion Line Length")
basePeriods = input(26, "Base Line Length")
laggingSpan2Periods = input(52, "Leading Span B Length")
displacement = input(26, "Lagging Span")
atrLength = input(14, title="ATR Length")

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

// Plot the Ichimoku Cloud components
plot(conversionLine, color=color.blue, title="Conversion Line")
plot(baseLine, color=color.red, title="Base Line")
plot(leadLine1, color=color.green, title="Leading Span A")
plot(leadLine2, color=color.orange, title="Leading Span B")
plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, color=color.green, title="Kumo Cloud Upper Line")
plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, color=color.red, title="Kumo Cloud Lower Line")

// ATR for stop loss and take profit
atrValue = ta.atr(atrLength)
stopLoss = atrValue * 2
takeProfit = atrValue * 4

// Strategy entry and exit conditions
longCondition = ta.crossover(close, leadLine1) and close > leadLine2
shortCondition = ta.crossunder(close, leadLine1) and close < leadLine2

// Plot buy and sell signals
plotshape(series=longCondition ? leadLine1 : na, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition ? leadLine1 : na, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Execute strategy orders with stop loss and take profit
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition) // Close buy position when sell condition is met
strategy.entry("Sell", strategy.short, when=shortCondition)
strategy.close("Sell", when=longCondition) // Close sell position when buy condition is met

// Trailing stop
strategy.cancel("Trailing Stop")
var float trailingStopPrice = na
if (longCondition)
    trailingStopPrice := math.max(trailingStopPrice, close - atrValue * 2)
    strategy.exit("Trailing Stop", from_entry="Buy", trail_offset=atrValue * 2, trail_price=trailingStopPrice)
else if (shortCondition)
    trailingStopPrice := math.min(trailingStopPrice, close + atrValue * 2)
    strategy.exit("Trailing Stop", from_entry="Sell", trail_offset=atrValue * 2, trail_price=trailingStopPrice)