> ## Documentation Index
> Fetch the complete documentation index at: https://docs.innova-trading.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ichimoku Cloud

> Sistema de tendencia japonés completo — Tenkan-sen, Kijun-sen, la nube Senkou A/B y el Chikou Span, con degradación explícita de cómo se dibuja la nube

## Qué es

**Ichimoku Kinko Hyo** ("gráfico de equilibrio de un vistazo") es un sistema desarrollado por Goichi Hosoda que combina tendencia, momentum y soporte/resistencia en un solo indicador. A diferencia de los indicadores clásicos (SMA, EMA, BB), no es una única línea sino **cinco líneas** que se leen en conjunto:

| Línea | Fórmula | Qué representa |
| - | - | - |
| **Tenkan-sen** (Conversión) | (máximo + mínimo) / 2 de los últimos `tenkanPeriod` | Momentum de corto plazo — similar a una media rápida |
| **Kijun-sen** (Base) | (máximo + mínimo) / 2 de los últimos `kijunPeriod` | Momentum de mediano plazo — similar a una media lenta |
| **Senkou Span A** (Adelantada A) | (Tenkan + Kijun) / 2, **desplazada `displacement` períodos hacia adelante** | Borde de la nube más sensible a cambios recientes |
| **Senkou Span B** (Adelantada B) | (máximo + mínimo) / 2 de los últimos `senkouBPeriod`, **desplazada `displacement` períodos hacia adelante** | Borde de la nube más lento, actúa como soporte/resistencia mayor |
| **Chikou Span** (Rezagada) | Precio de cierre, **desplazada `displacement` períodos hacia atrás** | Confirma si la tendencia actual tiene "espacio libre" en el pasado reciente |

El área entre Senkou Span A y Senkou Span B es la **nube (Kumo)**: alcista/verde cuando A queda por encima de B, bajista/roja en caso contrario.

<Info>
  Implementación en `frontend/lib/indicators/ichimoku.ts` (cálculo puro, sin dependencias de chart) — ver `useIchimokuOutput.ts` para el adaptador que lo convierte en `IndicatorOutput` y `IchimokuModule.tsx` para el render. Cobertura de tests: `frontend/__tests__/lib/indicators/ichimoku.test.ts`.
</Info>

## Parámetros

| Parámetro | Default | Rango | Qué hace |
| - | - | - | - |
| `tenkanPeriod` | **9** | 1–100 | Período de la línea de Conversión |
| `kijunPeriod` | **26** | 1–200 | Período de la línea Base |
| `senkouBPeriod` | **52** | 1–300 | Período de la línea Adelantada B |
| `displacement` | **26** | 0–200 | Cuántos períodos se desplazan Senkou A/B hacia adelante y Chikou hacia atrás |
| `showCloud` | `true` | — | Muestra/oculta Senkou Span A y B (la nube) |
| `showChikou` | `true` | — | Muestra/oculta el Chikou Span |
| `showTenkanKijun` | `true` | — | Muestra/oculta Tenkan-sen y Kijun-sen |

Los tres períodos y el desplazamiento son configuración estándar japonesa: nacieron de una semana de trading de 6 días (26 ≈ un mes bursátil de la época). El preset `ichimoku_intraday` (10/30/60/30) es una adaptación común para mercados 24h (forex/crypto).

## Cómo se calcula

1. **Tenkan-sen / Kijun-sen**: el mismo cálculo de "canal Donchian" (máximo/mínimo de N barras), solo cambia el período. `donchianMid(i, N) = (highestHigh(i, N) + lowestLow(i, N)) / 2`.

2. **Senkou Span A**: promedio de Tenkan y Kijun **en la barra `i`**, pero el punto se dibuja en el tiempo de la barra `i + displacement`. Como esas barras futuras normalmente no existen todavía en los datos, el tiempo se proyecta usando el espaciado dominante entre barras (`inferBarInterval` — la moda de los deltas de tiempo consecutivos, robusta a huecos de fin de semana).

3. **Senkou Span B**: igual que Tenkan/Kijun pero con `senkouBPeriod` (52) y el mismo desplazamiento hacia adelante que Span A.

4. **Chikou Span**: el cierre de la barra `i` se dibuja en el tiempo de la barra `i - displacement`. No requiere proyección de tiempo (esas barras ya existen).

<Warning>
  Los 4 primeros valores requieren "warmup": no hay Tenkan hasta la barra `tenkanPeriod-1`, no hay Kijun hasta `kijunPeriod-1`, Senkou A necesita `max(tenkanPeriod, kijunPeriod)-1`, Senkou B necesita `senkouBPeriod-1`, y Chikou necesita al menos `displacement` barras de historia. El cálculo devuelve arrays más cortos (nunca `NaN`) — no hay puntos "vacíos" en el medio de una serie.
</Warning>

## La nube: decisión de render

El contrato `IndicatorOutput` del framework de indicadores (`components/indicators/core/indicator-output.ts`) tiene 4 primitivas: `DrawLine` (línea horizontal/diagonal), `DrawMarker`, `DrawRectangle` (caja de precio fija) y `DrawLineSeries` (una línea continua). **Ninguna de las cuatro dibuja el relleno entre dos líneas que varían con el precio** — `DrawRectangle` es una caja con `priceHigh`/`priceLow` fijos, no sirve para una nube que sube y baja barra a barra.

<Warning>
  **Degradación explícita**: la nube se dibuja como **dos `DrawLineSeries`** (Senkou Span A y Senkou Span B) con colores distintos (verde/rojo) que delimitan visualmente dónde estaría el área — sin relleno de color real entre ambas líneas. Es una limitación conocida de este pase, no un bug. Un relleno real requeriría un primitive custom (al estilo `RectanglePrimitive`/`HorizontalLinePrimitive` en `lib/chart-primitives`) que interpole el color barra a barra entre ambas series — no se construyó en este pase por alcance.
</Warning>

Esto es consistente con cómo el resto de la plataforma resuelve áreas: los paneles separados (`BasePanelIndicator.tsx`, `usePaneIndicators.ts`) usan `AreaSeries` nativa de Lightweight Charts (línea + relleno hacia una base fija), que tampoco sirve para un relleno entre dos líneas independientes.

## Qué ve el usuario en el chart

El módulo `IchimokuModule.tsx` sigue el patrón `useXxxOutput → IndicatorRenderer` (el mismo que usan SwingPoints V2 y BZK) — no hace llamadas directas a la API de Lightweight Charts. Las 5 líneas se dibujan como `LineSeries` independientes; `showCloud`/`showChikou`/`showTenkanKijun` habilitan o deshabilitan grupos completos de líneas de una sola vez.

Colores por defecto (tokens del framework, `components/indicators/framework/colors.ts`):

| Línea | Color |
| - | - |
| Tenkan-sen | Azul (`C.neutral.blue`) |
| Kijun-sen | Naranja (`C.special.orange`) |
| Senkou Span A | Verde (`C.bullish.primary`) |
| Senkou Span B | Rojo (`C.bearish.primary`) |
| Chikou Span | Gris punteado (`C.neutral.gray`) |

## Recetas

<AccordionGroup>
  <Accordion title="1. Lectura estándar (default 9/26/52/26)">
    Dejá los parámetros por defecto. Precio arriba de la nube = sesgo alcista, abajo = sesgo bajista, dentro = rango. Confirmá con el cruce Tenkan/Kijun (similar a un cruce de medias) y con que el Chikou Span no esté "atrapado" contra el precio histórico.
  </Accordion>

  <Accordion title="2. Simplificar el chart (solo líneas)">
    Usá el preset `ichimoku_lines_only` (`showCloud: false`, `showChikou: false`) para quedarte solo con Tenkan/Kijun — útil si ya tenés otros indicadores de estructura (ISS, Swing Points) y la nube agrega ruido visual.
  </Accordion>

  <Accordion title="3. Adaptar a mercados 24h">
    El preset `ichimoku_intraday` (10/30/60/30) ajusta los períodos a una "semana" de 30 horas, más apropiado para forex/crypto que no cierran los fines de semana de la misma forma que las bolsas japonesas de los años 30 (origen de los períodos 9/26/52).
  </Accordion>
</AccordionGroup>

***

<Card title="Volver a la Visión General" icon="arrow-left" href="/learn/indicators/overview">
  Ver el resto de indicadores propios de la plataforma.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.