Estrategia comercial de Ichimoku Kumo


Fecha de creación: 2024-05-29 17:23:36 Última modificación: 2024-05-29 17:23:36
Copiar: 3 Número de Visitas: 581
1
Seguir
1617
Seguidores

Estrategia comercial de Ichimoku Kumo

Descripción general

La estrategia utiliza el indicador Ichimoku Kumo para juzgar las tendencias del mercado y las señales de negociación. La estrategia hace más bajo la nube de Kumo y más arriba de la nube de Kumo. La estrategia utiliza el indicador ATR como parada de pérdida, mientras que utiliza la ruptura de la línea Kijun-sen y la línea Senkou Span como confirmación de la señal de entrada.

Principio de estrategia

  1. Utiliza las líneas de Kijun-sen, Tenkan-sen y Senkou Span en el indicador Ichimoku para juzgar la tendencia del mercado.
  2. Cuando el precio de cierre está por debajo de la línea de Senkou Span y la línea de Kijun-sen está por encima de la nube de Kumo, se produce una señal de multiplicación.
  3. Cuando el precio de cierre está por encima de la línea de Senkou Span y la línea de Kijun-sen está por debajo de la nube de Kumo, se produce una señal de corto plazo.
  4. Utiliza el indicador ATR para calcular la posición de parada, la posición de parada es el máximo / mínimo de las 5 líneas K más recientes menos / más 3 veces el ATR.
  5. Cuando el precio rompe la posición de stop loss, la posición se cierra.

Ventajas estratégicas

  1. La estrategia se basa en el indicador Ichimoku, que permite analizar las tendencias del mercado en su totalidad.
  2. La estrategia también considera la relación de los precios con la línea de Kijun-sen y la línea de Senkou Span para mejorar la fiabilidad de la señal de entrada.
  3. El uso de ATR como stop loss permite ajustar dinámicamente la posición de stop loss para controlar mejor el riesgo.
  4. La configuración de las posiciones de stop loss tiene en cuenta la volatilidad del mercado y puede adaptarse a diferentes condiciones de mercado.

Riesgo estratégico

  1. Esta estrategia puede generar más señales falsas en mercados convulsionados, lo que lleva a transacciones frecuentes y pérdidas de capital.
  2. El rendimiento de la estrategia depende de la elección de los parámetros del indicador Ichimoku, y diferentes parámetros pueden producir diferentes resultados de transacción.
  3. En situaciones extremas, el precio puede romper rápidamente el punto de parada, lo que provoca grandes deslizamientos y pérdidas.

Dirección de optimización de la estrategia

  1. Introducción de otros indicadores técnicos o análisis cuantitativo para ayudar a determinar la tendencia y el momento de entrada, mejorando la precisión de la señal.
  2. Optimice la configuración de la posición de stop loss, por ejemplo, considere usar stop loss de seguimiento o stop loss móvil para proteger mejor la seguridad de la cuenta.
  3. Incluir en la estrategia la gestión de posiciones, ajustando el tamaño de las posiciones de cada operación en función de la volatilidad del mercado y el riesgo de la cuenta.
  4. Optimizar los parámetros de la estrategia para encontrar la combinación de parámetros que mejor se adapte a las condiciones actuales del mercado.

Resumir

La estrategia utiliza varios componentes del indicador Ichimoku para lograr un análisis completo de las tendencias del mercado. Al mismo tiempo, la estrategia utiliza el stop loss ATR para controlar el riesgo y aumentar la solidez de la estrategia. Sin embargo, la estrategia puede tener un mal desempeño en mercados convulsos y depende de la selección de parámetros.

Código Fuente de la Estrategia
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © muratatilay

//@version=5
strategy(
     "Kumo Trade Concept", 
     overlay=true,
     initial_capital=10000,
     currency=currency.USDT,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=30,
     commission_type=strategy.commission.percent,
     commission_value=0.1,
     margin_long=10, 
     margin_short=10)


// ICHIMOKU Lines 
//  INPUTS
tenkanSenPeriods = input.int(9, minval=1, title="Tenkan-sen")
kijunSenPeriods = input.int(26, minval=1, title="Kijun-sen")
senkouBPeriod = input.int(52, minval=1, title="Senkou span B")
displacement = input.int(26, minval=1, title="Chikou span")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
tenkanSen = donchian(tenkanSenPeriods)
kijunSen = donchian(kijunSenPeriods)
senkouA = math.avg(tenkanSen, kijunSen)
senkouB = donchian(senkouBPeriod)

// Other Indicators
float   atrValue    = ta.atr(5)

// Calculate Senkou Span A 25 bars back
senkouA_current = math.avg(tenkanSen[25], kijunSen[25])
// Calculate Senkou Span B 25 bars back
senkouB_current = math.avg(ta.highest(senkouBPeriod)[25], ta.lowest(senkouBPeriod)[25])

// Kumo top bottom 
senkou_max = (senkouA_current >= senkouB_current) ? senkouA_current : senkouB_current
senkou_min = (senkouB_current >= senkouA_current) ? senkouA_current : senkouB_current

// Trade Setups
long_setup = (kijunSen > senkou_max) and (close < senkou_min) 
short_setup = (kijunSen < senkou_min ) and ( close > senkou_max ) 

// Check long_setup for the last 10 bars
long_setup_last_10 = false
for i = 0 to 50
    if long_setup[i]
        long_setup_last_10 := true
short_setup_last_10 = false
for i = 0 to 50
    if short_setup[i]
        short_setup_last_10 := true


closeSenkouCross = (close > senkou_max) and barstate.isconfirmed 
closeKijunCross = (close > kijunSen ) 

senkouCloseCross = close < senkou_min
kijunCloseCross = close < kijunSen


// Handle Trades
// Enter Trade
var float trailStopLong = na
var float trailStopShort = na
if ( closeSenkouCross and long_setup_last_10 and closeKijunCross ) 
    strategy.entry(id="Buy", direction = strategy.long)
    trailStopLong := na
if senkouCloseCross and short_setup_last_10 and kijunCloseCross
    strategy.entry(id="Sell", direction = strategy.short)
    trailStopShort := na


// Update trailing stop
float temp_trailStop_long = ta.highest(high, 5) - (atrValue * 3)
float temp_trailStop_short = ta.lowest(low, 5) + (atrValue * 3)
if strategy.position_size > 0
    if temp_trailStop_long > trailStopLong or na(trailStopLong)
        trailStopLong := temp_trailStop_long
if strategy.position_size < 0
    if temp_trailStop_short < trailStopShort or na(trailStopShort)
        trailStopShort := temp_trailStop_short

// Handle strategy exit
if close < trailStopLong and barstate.isconfirmed
    strategy.close("Buy", comment="Stop Long")
if close > trailStopShort and barstate.isconfirmed
    strategy.close("Sell", comment="Stop Short")


// PRINT ON CHART
plot(kijunSen, color=color.rgb(214, 58, 30), title="Kijun-sen", linewidth=2)
p1 = plot(senkouA, offset=displacement - 1, color=#A5D6A7, title="Senkou span A")
p2 = plot(senkouB, offset=displacement - 1, color=#EF9A9A, title="Senkou Span B")
fill(p1, p2, color=senkouA > senkouB ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))
// PRINT SETUPS
plotshape(long_setup , style=shape.circle, color=color.green, location=location.belowbar, size=size.small)
plotshape(short_setup, style=shape.circle, color=color.red, location=location.abovebar, size=size.small)

// Trail Stop
plot(strategy.position_size[1] > 0 ? trailStopLong : na, style=plot.style_linebr, color=color.purple, title="Stop Loss")
plot(strategy.position_size[1] < 0 ? trailStopShort : na, style=plot.style_linebr, color=color.purple, title="Stop Loss")