Estrategia de negociación cuantitativa basada en el breakout de la nube de Ichimoku y el índice ADX

El autor:¿ Qué pasa?, Fecha: 2024-02-02 17:50:30
Las etiquetas:

img

Resumen general

El nombre de esta estrategia es Quantitative Trading Strategy Based on Ichimoku Cloud Breakout and ADX Index. Combina el gráfico de la nube de Ichimoku con el índice de movimiento direccional promedio (ADX) para determinar cuándo tomar posiciones largas o cortas.

Estrategia lógica

La estrategia utiliza Ichimoku Cloud de los indicadores Ichimoku Kinko Hyo para identificar áreas clave de soporte y resistencia. También incorpora el índice ADX para juzgar la fuerza de la tendencia.

Las señales de entrada largas:

  • La línea de conversión cruza la línea de base
  • Las líneas de retraso se cruzan por encima del eje 0
  • Precio por encima de las nubes
  • ADX por debajo de 45 (indicando una tendencia no sobreextensiva)
  • +DI por encima de -DI (indicando tendencia alcista)

Señales de entrada cortas:

  • La línea de conversión cruza por debajo de la línea de base
  • La línea de retraso se cruza por debajo del eje 0
  • Precio por debajo de la nube
  • ADX por encima de 45 (que indica una posible reversión de la tendencia)
  • +DI por debajo de -DI (indicando tendencia a la baja)

Análisis de ventajas

La estrategia combina el análisis de patrones gráficos y los indicadores de análisis de tendencias, que pueden determinar eficazmente las tendencias del mercado y las áreas fuertes.

  1. Usando la nube Ichimoku para determinar los niveles clave de soporte/resistencia para detectar tendencias fuertes
  2. Incorporación del índice ADX para medir la fuerza de la tendencia real, evitando operaciones falsas
  3. Reglas claras y fáciles de seguir para el comercio en vivo

Riesgos y soluciones

Hay algunos riesgos con esta estrategia, principalmente en torno a la inestabilidad en la determinación de la tendencia de ADX. Los riesgos y soluciones son:

  1. ADX tiene un efecto de retraso, puede pasar por alto las inversiones rápidas.
  2. ADX no funciona bien en los mercados de rango. puede añadir filtros como canal BOLL
  3. La nube Ichimoku también puede fallar. Puede ajustar parámetros o añadir indicadores auxiliares

Sugerencias para optimizar

La estrategia se puede optimizar aún más de las siguientes maneras:

  1. Ajuste los parámetros de Ichimoku para adaptarse a más instrumentos
  2. Añadir stop loss para controlar la pérdida de una sola operación
  3. Incorporar más indicadores para filtrar las señales
  4. Añadir predicción de aprendizaje automático para determinar más señales de tendencia

Conclusión

Esta estrategia combina el gráfico de la nube Ichimoku y el índice de tendencia ADX para formar un sistema de negociación cuantitativo completo. Identifica los niveles clave de soporte / resistencia mientras también juzga la tendencia. Puede capturar eficazmente las oportunidades del mercado. La estrategia es fácil de implementar en el comercio en vivo y también tiene espacio para la optimización. En general, es una estrategia cuantitativa de calidad.


/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule

//@version=5
strategy('Ichimoku Cloud with ADX (By Coinrule)',
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)


// Stop Loss and Take Profit for Shorting
Stop_loss = input(1) / 100
Take_profit = input(5) / 100
longStopPrice = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)


// Inputs
ts_bars = input.int(9, minval=1, title='Tenkan-Sen Bars')
ks_bars = input.int(26, minval=1, title='Kijun-Sen Bars')
ssb_bars = input.int(52, minval=1, title='Senkou-Span B Bars')
cs_offset = input.int(26, minval=1, title='Chikou-Span Offset')
ss_offset = input.int(26, minval=1, title='Senkou-Span Offset')
long_entry = input(true, title='Long Entry')
short_entry = input(true, title='Short Entry')

middle(len) => math.avg(ta.lowest(len), ta.highest(len))

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_bars)

// Plot Ichimoku Kinko Hyo
plot(tenkan, color=color.new(#0496ff, 0), title='Tenkan-Sen')
plot(kijun, color=color.new(#991515, 0), title='Kijun-Sen')
plot(close, offset=-cs_offset + 1, color=color.new(#459915, 0), title='Chikou-Span')
sa = plot(senkouA, offset=ss_offset - 1, color=color.new(color.green, 0), title='Senkou-Span A')
sb = plot(senkouB, offset=ss_offset - 1, color=color.new(color.red, 0), title='Senkou-Span B')
fill(sa, sb, color=senkouA > senkouB ? color.green : color.red, title='Cloud color', transp=90)

ss_high = math.max(senkouA[ss_offset - 1], senkouB[ss_offset - 1])
ss_low = math.min(senkouA[ss_offset - 1], senkouB[ss_offset - 1])


// ADX
[pos_dm, neg_dm, avg_dm] = ta.dmi(14, 14)


// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = ta.mom(close, cs_offset - 1) > 0
cs_cross_bear = ta.mom(close, cs_offset - 1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low

bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and avg_dm < 45 and pos_dm > neg_dm
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and avg_dm > 45 and pos_dm < neg_dm

strategy.entry('Long', strategy.long, when=bullish and long_entry and timePeriod)
strategy.close('Long', when=bearish and not short_entry)

strategy.entry('Short', strategy.short, when=bearish and short_entry and timePeriod)
strategy.close('Short', when=bullish and not long_entry)




Más.