☁️ Indicador Avanzado

Indicador Ichimoku Cloud Personalizado — Pine Script Listo

Por Dan Machado · Abril 2026 · 9 min

Ichimoku Kinko Hyo (significa «gráfico de equilibrio a primera vista» en japonés) es uno de los indicadores de trading más completos. Un solo gráfico muestra: tendencia, soporte, resistencia, momentum y señales de entrada/salida.

En este post te paso una versión personalizada del Ichimoku en Pine Script v5 — con colores mejorados, señales automáticas de compra/venta y un dashboard de estado.

Los 5 componentes del Ichimoku

  • Tenkan-sen (Línea de Conversión): media de 9 períodos — tendencia rápida
  • Kijun-sen (Línea Base): media de 26 períodos — tendencia media
  • Senkou Span A: media de Tenkan y Kijun, proyectada 26 períodos al frente
  • Senkou Span B: media de 52 períodos, proyectada 26 períodos al frente
  • Chikou Span: precio de cierre, desplazado 26 períodos hacia atrás

La «nube» (Kumo) se forma con el área entre Senkou A y Senkou B. Actúa como soporte/resistencia dinámico.

Cómo interpretarlo

  • Precio sobre la nube + nube verde → tendencia alcista fuerte
  • Precio bajo la nube + nube roja → tendencia bajista fuerte
  • ⚠️ Precio dentro de la nube → indecisión, evita operar
  • 📈 Tenkan cruza Kijun hacia arriba → señal de compra
  • 📉 Tenkan cruza Kijun hacia abajo → señal de venta

Código completo

Pine Script v5📋 Copiar
//@version=5
indicator("Ichimoku Cloud Custom — IA Trader Pro", overlay=true)

// === PARAMETERS ===
conversionPeriods = input.int(9, "Tenkan-sen (Conversion)")
basePeriods = input.int(26, "Kijun-sen (Base)")
laggingSpan2Periods = input.int(52, "Senkou Span B")
displacement = input.int(26, "Displacement")

// === CALCULATIONS ===
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

// === PLOTS ===
plot(conversionLine, "Tenkan-sen", color=#00E676, linewidth=2)
plot(baseLine, "Kijun-sen", color=#FF5252, linewidth=2)
plot(close, "Chikou Span", offset=-displacement + 1, color=#E040FB, linewidth=1)

p1 = plot(leadLine1, "Senkou Span A", offset=displacement - 1, color=#00E676, linewidth=1)
p2 = plot(leadLine2, "Senkou Span B", offset=displacement - 1, color=#FF5252, linewidth=1)

// === CLOUD ===
fill(p1, p2, color=leadLine1 > leadLine2 ? color.new(#00E676, 85) : color.new(#FF5252, 85))

// === BUY/SELL SIGNALS ===
// Buy: Tenkan crosses above Kijun AND price above the cloud
buySignal = ta.crossover(conversionLine, baseLine) and close > leadLine1 and close > leadLine2
// Sell: Tenkan crosses below Kijun AND price below the cloud
sellSignal = ta.crossunder(conversionLine, baseLine) and close < leadLine1 and close < leadLine2

plotshape(buySignal, "BUY", shape.labelup, location.belowbar, color.new(#00E676, 0), text="▲ BUY", textcolor=color.white, size=size.normal)
plotshape(sellSignal, "SELL", shape.labeldown, location.abovebar, color.new(#FF5252, 0), text="▼ SELL", textcolor=color.white, size=size.normal)

// === DASHBOARD ===
var table dash = table.new(position.top_right, 2, 5, bgcolor=color.new(#06090F, 20), border_width=1, border_color=color.new(color.gray, 80))

// Determine price position relative to cloud
priceAbove = close > math.max(leadLine1, leadLine2)
priceBelow = close < math.min(leadLine1, leadLine2)
priceInside = not priceAbove and not priceBelow

status = priceAbove ? "ABOVE CLOUD ▲" : priceBelow ? "BELOW CLOUD ▼" : "INSIDE CLOUD ⚠"
statusColor = priceAbove ? #00E676 : priceBelow ? #FF5252 : #FFC107

cloudColor = leadLine1 > leadLine2 ? "GREEN (up)" : "RED (down)"

if barstate.islast
    table.cell(dash, 0, 0, "Ichimoku Cloud", text_color=#448AFF, text_size=size.small, bgcolor=color.new(#448AFF, 85))
    table.cell(dash, 1, 0, "Status", text_color=#448AFF, text_size=size.small, bgcolor=color.new(#448AFF, 85))
    table.cell(dash, 0, 1, "Price", text_color=color.white, text_size=size.small)
    table.cell(dash, 1, 1, status, text_color=statusColor, text_size=size.small)
    table.cell(dash, 0, 2, "Cloud", text_color=color.white, text_size=size.small)
    table.cell(dash, 1, 2, cloudColor, text_color=leadLine1 > leadLine2 ? #00E676 : #FF5252, text_size=size.small)
    table.cell(dash, 0, 3, "Tenkan vs Kijun", text_color=color.white, text_size=size.small)
    table.cell(dash, 1, 3, conversionLine > baseLine ? "Up ▲" : "Down ▼", text_color=conversionLine > baseLine ? #00E676 : #FF5252, text_size=size.small)
    table.cell(dash, 0, 4, "Strong Signal", text_color=color.white, text_size=size.small)
    table.cell(dash, 1, 4, (priceAbove and conversionLine > baseLine) ? "BUY 🚀" : (priceBelow and conversionLine < baseLine) ? "SELL 📉" : "WAIT ⏸", text_color=color.white, text_size=size.small)

// === ALERTS ===
alertcondition(buySignal, "Ichimoku Buy", "Ichimoku: BUY signal — Tenkan crossed Kijun above the cloud")
alertcondition(sellSignal, "Ichimoku Sell", "Ichimoku: SELL signal — Tenkan crossed Kijun below the cloud")

Cómo usarlo

  • Timeframes recomendados: H1, H4 o diario (Ichimoku no funciona bien en timeframes muy cortos)
  • Activos: Forex, índices, acciones, crypto — funciona en cualquier mercado con volumen
  • Espera señales donde el precio esté claramente sobre o bajo la nube
  • Evita operar cuando el precio esté dentro de la nube (indecisión)
  • Usa stop loss en la Kijun-sen (línea base) o bajo la nube

💡 Pro tip

Ichimoku es más poderoso cuando esperas las «5 confirmaciones»: (1) precio sobre/bajo la nube, (2) Tenkan cruzando Kijun, (3) Chikou despejado de precios pasados, (4) nube futura en la misma dirección, (5) volumen confirmando. Cuantas más confirmaciones, más fuerte la señal.

🚀 Prueba Ichimoku en Deriv — cuenta demo gratis:

Abrir Cuenta Demo Deriv →
DM

Dan Machado

Más en Indicadores y Scripts.

⚠️ Indicador educativo. El trading implica riesgo. Aviso Legal.