En la carga de los recursos... Cargando...

Estrategia de comercio de Ichimoku Kumo

El autor:¿ Qué pasa?, Fecha: 2024-05-29 17:23:36
Las etiquetas:

img

Resumen general

Esta estrategia utiliza el indicador Ichimoku Kumo para determinar las tendencias del mercado y las señales de negociación. La estrategia va largo cuando el precio está por debajo de la nube Kumo y va corto cuando el precio está por encima de la nube Kumo. La estrategia utiliza el indicador ATR para stop-loss y confirma las señales de entrada con rupturas de las líneas Kijun-sen y Senkou Span. La estrategia tiene como objetivo capturar oportunidades comerciales en tendencias fuertes mientras controla el riesgo.

Principio de la estrategia

  1. Utilice las líneas Kijun-sen, Tenkan-sen y Senkou Span del indicador Ichimoku para determinar las tendencias del mercado.
  2. Genera una señal larga cuando el precio de cierre está por debajo de la línea Senkou Span y la línea Kijun-sen está por encima de la nube Kumo.
  3. Generar una señal corta cuando el precio de cierre está por encima de la línea Senkou Span y la línea Kijun-sen está por debajo de la nube Kumo.
  4. Calcular la posición de stop-loss utilizando el indicador ATR, que es el punto más alto/más bajo de las últimas 5 velas menos/más 3 veces el ATR.
  5. Cierre la posición cuando el precio rompa el nivel de stop-loss.

Ventajas estratégicas

  1. La estrategia se basa en el indicador Ichimoku, que proporciona un análisis exhaustivo de las tendencias del mercado.
  2. La estrategia considera la relación entre el precio, la línea Kijun-sen y la línea Senkou Span, mejorando la fiabilidad de las señales de entrada.
  3. El uso de ATR para el stop-loss permite un ajuste dinámico de la posición de stop-loss, controlando mejor el riesgo.
  4. La configuración de stop-loss tiene en cuenta la volatilidad del mercado y se adapta a las diferentes condiciones del mercado.

Riesgos estratégicos

  1. La estrategia puede generar numerosas señales falsas en mercados agitados, lo que conduce a operaciones frecuentes y pérdidas de capital.
  2. El rendimiento de la estrategia depende de la selección de los parámetros del indicador Ichimoku, y diferentes parámetros pueden producir diferentes resultados comerciales.
  3. En los mercados volátiles, los precios pueden romper rápidamente la posición de stop-loss, causando importantes deslizamientos y pérdidas.

Direcciones para la optimización de la estrategia

  1. Introducir otros indicadores técnicos o análisis precio-volumen para ayudar a determinar las tendencias y el momento de entrada, mejorando la precisión de la señal.
  2. Optimizar la configuración de stop-loss, como considerar las paradas de espera o las paradas de movimiento, para proteger mejor la seguridad de la cuenta.
  3. Incorporar el tamaño de la posición en la estrategia, ajustando el tamaño de cada operación en función de la volatilidad del mercado y el riesgo de la cuenta.
  4. Realizar una optimización de parámetros en la estrategia para encontrar la combinación de parámetros más adecuada para las condiciones actuales del mercado.

Resumen de las actividades

Esta estrategia utiliza múltiples componentes del indicador Ichimoku para analizar de manera integral las tendencias del mercado. Al mismo tiempo, la estrategia utiliza el stop-loss ATR para controlar el riesgo, mejorando la robustez de la estrategia. Sin embargo, la estrategia puede tener un rendimiento inferior en mercados variados y depende de la selección de parámetros. En el futuro, el rendimiento de la estrategia puede mejorarse aún más mediante la introducción de otros métodos de análisis, la optimización del stop-loss y el tamaño de la posición, y otros medios.


/*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")


Más.