What is Ichimoku Strategies calculation?
Ichimoku Strategies refers to the systematic calculation of the Ichimoku Kinko Hyo indicator components from market price data. The indicator produces several lines and shifted “cloud” boundaries that are all derived from rolling statistics—mainly the highest high and lowest low over lookback windows, plus moving-average smoothing.
Before considering how it is used, it is important to separate the stable mechanics (the formulas and required inputs) from variable conditions (the chosen parameter settings, the data frequency, and the quality of the input OHLC series). If you know the exact formulas, you can calculate the lines independently and compare results across implementations.
The core inputs and assumptions
To calculate Ichimoku components, you need a time-ordered series of OHLC price data, typically open, high, low, and close for each bar (candlestick or time interval). Most Ichimoku implementations base the calculations on high, low, and close.
You also need these parameters (window lengths), which are sometimes configurable:
- Tenkan-sen period (often called conversion line length)
- Kijun-sen period (often called base line length)
- Senkou span B period (often called leading span B length)
- Displacement/shift (how far the forward cloud boundaries are plotted, and how far lagging line is shifted back)
- Optional: whether any component uses a specific averaging method (for standard Ichimoku, it is usually a midpoint of rolling extremes)
A key assumption for verification is that you apply the same parameters and displacement rules, and you compute rolling highs/lows using the same definition of “previous bars” (for example, whether the current bar is included in the lookback window).
The calculation mechanism (formula-level)
Ichimoku’s standard structure can be understood as five related components. The exact naming varies, but the math is consistent.
1) Tenkan-sen (conversion line)
Tenkan-sen is the midpoint between the highest high and lowest low over the Tenkan period.
If we denote:
- HighestHigh(T) = maximum of high over the last T bars (including the current bar, unless your implementation specifies otherwise)
- LowestLow(T) = minimum of low over the last T bars
Then:
- Tenkan = (HighestHigh(TenkanPeriod) + LowestLow(TenkanPeriod)) / 2
2) Kijun-sen (base line)
Kijun-sen is computed the same way, but using the Kijun period:
- Kijun = (HighestHigh(KijunPeriod) + LowestLow(KijunPeriod)) / 2
3) Senkou Span A (leading span A)
Senkou Span A is derived from the midpoints above and then shifted forward by the displacement amount.
A common formulation is:
- SenkouA_unshifted = (Tenkan + Kijun) / 2
- SenkouA = SenkouA_unshifted shifted forward by Displacement
In other words, you calculate the value at time t, then plot it at time t + Displacement.
4) Senkou Span B (leading span B)
Senkou Span B uses the midpoint between rolling extremes over the Senkou span B period, then shifted forward by the same displacement:
- SenkouB_unshifted = (HighestHigh(SenkouBPeriod) + LowestLow(SenkouBPeriod)) / 2
- SenkouB = SenkouB_unshifted shifted forward by Displacement
5) Chikou Span (lagging span)
Chikou Span is the close price shifted backward by the displacement amount:
- Chikou = Close shifted backward by Displacement
So you take the close at time t and plot it at time t − Displacement.
Evidence or example: a self-check with explicit steps
Because there is no real-time data in this explanation, the most reliable “evidence” is a procedure you can run on any historical OHLC dataset to reproduce the lines.
Assume you have OHLC bars indexed by time t = 1, 2, 3, … and you choose parameters:
- TenkanPeriod = T1
- KijunPeriod = T2
- SenkouBPeriod = T3
- Displacement = D
For a specific time t where enough history exists (t ≥ max(T1, T2, T3)), you can compute:
- HighestHigh(T1) and LowestLow(T1) using high and low over bars (t − T1 + 1 … t).
- Tenkan(t) = (HighestHigh(T1) + LowestLow(T1)) / 2.
- HighestHigh(T2) and LowestLow(T2) over (t − T2 + 1 … t).
- Kijun(t) = (HighestHigh(T2) + LowestLow(T2)) / 2.
- HighestHigh(T3) and LowestLow(T3) over (t − T3 + 1 … t).
- SenkouB_unshifted(t) = (HighestHigh(T3) + LowestLow(T3)) / 2.
- SenkouA_unshifted(t) = (Tenkan(t) + Kijun(t)) / 2.
- Apply displacement:
- SenkouA(t + D) = SenkouA_unshifted(t)
- SenkouB(t + D) = SenkouB_unshifted(t)
- Chikou(t − D) = Close(t).
You can then verify by comparing the resulting plotted values at the corresponding times with what a charting implementation shows, using the same parameter values and the same bar data definition.
Relevant limitations and failure modes
Even with correct formulas, Ichimoku calculations can fail or mislead if verification is incomplete. Material limitations include:
-
Insufficient historical bars Rolling highs/lows require a full lookback window. Early in a dataset, Tenkan/Kijun/SenkouB may be undefined or calculated with fewer points depending on the platform. That changes the output and makes cross-platform comparisons unfair.
-
Time alignment and displacement confusion Senkou spans are shifted forward and Chikou is shifted backward. If you compare Ichimoku lines to another series (such as close or candles) without accounting for the displacement, you can accidentally compare values from different times.
-
Parameter differences across implementations Two charts may show “Ichimoku” with different window lengths or different displacement. Because the indicator is directly parameter-driven, outputs can differ even when both are “standard.”
-
Data frequency and OHLC source differences Using different timeframes (e.g., 1-hour vs 1-day bars) changes the rolling extremes and averages. Also, vendors may aggregate OHLC slightly differently (especially around session boundaries), producing different highs/lows.
-
Sensitivity to spikes and gaps Because Tenkan, Kijun, and SenkouB rely on highest highs and lowest lows, a single extreme bar can noticeably move the midpoint. This is a structural property of using rolling extremes.
Verification and what to check next
To independently verify the calculation, you can do three practical checks without relying on any “signal” interpretation:
- Confirm you are using the same parameters for TenkanPeriod, KijunPeriod, SenkouBPeriod, and Displacement.
- Recompute one historical time point using the explicit rolling-window formulas, then check whether your computed Tenkan/Kijun/Senkou match the chart’s displayed values at the same time.
- Validate the shifts: ensure SenkouA and SenkouB are plotted at time t + D and Chikou at time t − D.
If you want to go deeper, the next useful step is understanding how changing the settings alters which bars enter the rolling extremes and how the displacement changes visual alignment. A related explanation can be found at:
- /forex-strategies/indicator-based-forex-strategies/ichimoku-strategies/how-do-settings-change-ichimoku-strategies/