Ichimoku Cloud Explained: Formula, Displacement, Signals, and Replay Testing
Learn Ichimoku formulas, cloud displacement, trend states, TK crosses, Kumo breakouts, failure rules, and replay testing without predictive claims.
The Ichimoku Cloud is a five-part, price-based indicator that combines range midpoints with forward and backward chart displacement. It can organize trend context, relative price position, and possible support or resistance zones, but the forward-plotted cloud is not a forecast. A useful Ichimoku process begins by freezing the calculation and display rules, then defining exactly what counts as a state, crossover, breakout, confirmation, failure, and expiry.
This guide owns ChartMini's broad Ichimoku formula, displacement, component, state, and signal-definition intent. The stock-specific Ichimoku tutorial remains the stock workflow page, while the advanced stock-strategy guide remains the place for strategy variants that require separate testing.
Key Takeaways
- Ichimoku is not five conventional moving averages. Tenkan-sen, Kijun-sen, and Senkou Span B use high-low range midpoints; Senkou Span A averages two Ichimoku lines; Chikou Span is a shifted close.
- A forward-plotted cloud uses only information available at the calculation bar. Plotting a value ahead does not make it predictive.
- Price-versus-cloud, Tenkan-versus-Kijun, cloud color, and Chikou position are states. Crosses, breakouts, and twists are events. Do not treat the two as interchangeable.
- The cloud visible at the current bar was calculated on an earlier bar because of displacement. Incorrectly aligning calculation time and display time creates look-ahead errors.
- “Strong,” “weak,” “thick,” and “thin” require explicit definitions. Cloud thickness alone does not prove support strength, volatility, or future continuation.
- A signal record should include candidate, confirmation, failure, invalidation, expiry, no-signal, and ambiguous outcomes rather than only winners and losers.
- ChartMini can support candle-by-candle observation practice. It does not reproduce live liquidity, order routing, fills, spreads, slippage, commissions, or broker execution.
What This Page Owns
| Search question | Owner |
|---|---|
| What is Ichimoku, how is each line calculated, and how does displacement work? | This guide |
| How can Ichimoku be applied specifically to stock charts? | Stock Ichimoku Tutorial |
| Which advanced stock-specific Ichimoku strategy variants can be studied? | Advanced Ichimoku Strategies |
| How should general trend, swing, range, and transition structure be labeled? | Market Structure Guide |
| How should an independent breakout boundary be defined? | Breakout Trading Strategy |
| How should higher-timeframe data availability be handled? | Multiple Timeframe Analysis |
This separation matters because the existing Ichimoku cluster contains several broad articles. The target page retains the strongest saved Bing demand for ichimoku cloud, ichimoku indicator, ichimoku cloud explained, and ichimoku cloud settings; it should therefore remain the broad calculation and interpretation owner rather than becoming another stock-entry article.
Freeze the Chart Before Interpreting It
An Ichimoku reading is reproducible only when the chart and indicator configuration are fixed.
Record at least:
| Field | Why it matters |
|---|---|
| Symbol and venue | Different exchanges or broker feeds can have different highs and lows |
| Provider | The same ticker can use different consolidated or venue-specific histories |
| Interval | Nine daily bars and nine hourly bars represent different windows |
| Session | Regular-only and extended-hours bars can change every range midpoint |
| Timezone | Session boundaries can move candles and alter highs and lows |
| Adjustment policy | Splits and dividends can change historical stock prices |
| Futures construction | Front-month and continuous contracts can produce different ranges |
| Conversion period | Controls Tenkan-sen |
| Base period | Controls Kijun-sen and usually displacement |
| Leading Span B period | Controls the slower cloud boundary |
| Displacement | Controls where the leading and lagging series are displayed |
| Current-bar policy | Live values can change before the candle closes |
| Equality and precision | Crosses can change when rounded or equal values are handled differently |
A screenshot without these fields is not a complete research record.
The Five Components and Their Formulas
Let:
HH(n, t)be the highest high over the lastnbars ending at bart;LL(n, t)be the lowest low over the same window;C(t)be the closing price at bart;n1be the conversion period;n2be the base period;n3be the Leading Span B period;dbe the display displacement.
Common platform defaults are n1 = 9, n2 = 26, n3 = 52, and d = 26, but defaults are not universal strategy recommendations. TradingView and MetaTrader document the component relationships and allow configuration within their implementations.
Tenkan-sen: Conversion Line
Tenkan(t) = [HH(n1, t) + LL(n1, t)] / 2
Tenkan-sen is the midpoint of the recent high-low range. It is sometimes described as a fast moving average, but that description is incomplete. A simple moving average uses every selected closing value; Tenkan-sen uses only the highest high and lowest low in the window.
Consequences:
- Tenkan can remain flat while several closes move, as long as the window's high and low do not change.
- Tenkan can jump when an old extreme leaves the window.
- Its slope reflects changes in the window midpoint, not an average of bar-to-bar closing returns.
Kijun-sen: Base Line
Kijun(t) = [HH(n2, t) + LL(n2, t)] / 2
Kijun-sen uses the same range-midpoint calculation over a longer window. It is often used as a medium-window balance reference, but it is not guaranteed support, resistance, attraction, or a mean-reversion destination.
A flat Kijun means the window's highest high and lowest low currently produce the same midpoint from bar to bar. It does not prove that price must return to the line.
Senkou Span A: Leading Span A
SpanA_raw(t) = [Tenkan(t) + Kijun(t)] / 2
The value calculated at bar t is displayed at bar t + d.
SpanA_display(t + d) = SpanA_raw(t)
Span A therefore combines the two faster Ichimoku lines and shifts the result forward on the chart.
Senkou Span B: Leading Span B
SpanB_raw(t) = [HH(n3, t) + LL(n3, t)] / 2
The value calculated at bar t is also displayed at bar t + d.
SpanB_display(t + d) = SpanB_raw(t)
Span B is a longer-window range midpoint. The shaded area between displayed Span A and Span B is the Kumo, or cloud.
Chikou Span: Lagging Span
Chikou_display(t - d) = C(t)
The current close is displayed d bars behind its calculation bar. Chikou does not use a moving average or separate momentum formula. It is a shifted price series.
Displacement: The Most Important Alignment Rule
Ichimoku's distinctive appearance comes from displacement, and displacement is also the source of many testing errors.
At current bar t:
- Tenkan and Kijun shown at
tare calculated from data ending att. - The cloud shown at
twas generally calculated att - d. - The newly calculated cloud values at
tare displayed att + d. - The current close is displayed as Chikou at
t - d.
This creates two separate timestamps:
- Calculation timestamp: when the value became available.
- Display timestamp: where the platform draws it.
A correct backtest must use the calculation timestamp to determine information availability, even when the line is drawn elsewhere.
Example
Assume d = 26 and the current closed bar is bar 200.
- Span A and Span B calculated from bar 200 data appear at displayed bar 226.
- The cloud visible at bar 200 came from calculations made at bar 174.
- The close of bar 200 is drawn as Chikou at displayed bar 174.
The projected cloud from bars 201 through 226 contains no future prices. It consists of earlier calculations placed to the right of the current candle.
Common look-ahead mistake
A researcher computes Span A at bar 200, compares it directly with the close at bar 200, and calls the result “price above the current cloud.” That compares current price with a value that the standard chart displays 26 bars later.
Define whether the study uses:
- the display-aligned cloud at bar
t; or - a custom, non-displaced raw Span A and Span B series.
Do not switch between them without renaming the rule.
Ichimoku States
A state describes what is true at a bar. It is not necessarily a new signal.
Price versus the display-aligned cloud
At bar t, define:
CloudTop(t) = max[SpanA_display(t), SpanB_display(t)]
CloudBottom(t) = min[SpanA_display(t), SpanB_display(t)]
Possible states:
- Above cloud: selected price input is greater than
CloudTop. - Below cloud: selected price input is less than
CloudBottom. - Inside cloud: selected price input is between the two boundaries.
- On boundary: selected price equals one boundary under the precision rule.
- Unavailable: insufficient history exists for the selected periods and displacement.
The selected price input must be stated. A close-based state can differ from a high/low or full-candle state.
Tenkan versus Kijun
Possible states:
- Tenkan above Kijun;
- Tenkan below Kijun;
- equal within the chosen tolerance.
An above state can persist for many bars. It is not a new bullish cross on every bar.
Cloud orientation
- Span A above Span B: one orientation, often colored bullish by platforms.
- Span A below Span B: the opposite orientation.
- Equal: a twist point or flat overlap under the chosen rule.
Cloud color is a relationship between two shifted range calculations. It does not prove that the future trend will match the color.
Chikou relationship
“Chikou above price” is ambiguous unless the comparison is defined.
Possible versions include:
- current close, plotted back, compared with the historical close at the same displayed bar;
- compared with the historical candle high-low range;
- compared with the historical cloud;
- required to be clear of price for a selected number of bars.
Use separate names for separate versions.
Ichimoku Events
An event is a transition between states.
Tenkan-Kijun cross
A bullish closed-bar cross can be defined as:
- previous bar:
Tenkan <= Kijun; - current closed bar:
Tenkan > Kijun.
A bearish cross reverses the inequalities.
Specify:
- whether equality belongs to the previous or current state;
- whether intrabar crosses count;
- whether a minimum separation is required after the cross;
- whether repeated equal/cross/equal sequences create multiple events;
- how rounded chart values are handled.
Price-Kijun cross
A close-based bullish version can be:
- previous close at or below Kijun;
- current close above Kijun.
This is different from a wick touching Kijun, a candle body crossing Kijun, or price rejecting Kijun after a pullback.
Kumo breakout
A bullish cloud breakout requires a transition to above-cloud state. Several valid versions exist:
| Version | Example rule |
|---|---|
| Intrabar penetration | High moves above CloudTop |
| Close breakout | Close finishes above CloudTop |
| Full-body breakout | Open and close both finish above CloudTop |
| Consecutive-close breakout | Two or more closes remain above CloudTop |
| Follow-through breakout | Close above cloud plus later close beyond the breakout bar |
| Retest acceptance | Breakout followed by a return to the cloud edge and renewed close outside |
These versions can produce different candidate counts and results. Do not call all of them “the Ichimoku breakout strategy.”
Kumo twist
A twist occurs when displayed Span A and Span B change order. The signal has two times:
- the bar when the underlying raw calculations crossed and became available;
- the forward bar where the twist is drawn.
For live decision rules, the availability time controls. Using the future display position as though the market had already reached that date creates leakage.
Cloud Thickness Is Not Proven Strength
Cloud thickness at bar t can be defined as:
Thickness_raw(t) = abs[SpanA_display(t) - SpanB_display(t)]
Raw thickness is measured in price units. A ten-point cloud has different meaning on a $20 asset and a $2,000 asset.
Possible normalized versions:
Thickness_pct(t) = Thickness_raw(t) / reference_price(t) × 100
or
Thickness_atr(t) = Thickness_raw(t) / ATR(t)
If ATR normalization is used, the study becomes a combined Ichimoku-ATR feature and must define the ATR calculation and data controls.
Avoid turning thickness into an unsupported story:
- thick does not automatically mean strong support;
- thin does not automatically mean an easy breakout;
- a flat Span B does not guarantee attraction;
- a twist does not guarantee reversal.
These can be testable features, not conclusions assumed in advance.
A Reproducible Signal-State Framework
Instead of using “buy,” “sell,” “strong,” and “weak” as undefined labels, record a state machine.
Candidate
A candidate is the earliest condition worth tracking, such as:
- bullish TK cross;
- close entering the cloud from below;
- close above the display-aligned cloud;
- price-Kijun cross;
- cloud twist becoming available;
- Chikou clearance condition.
Confirmation
Confirmation must be separate from the candidate. Examples:
- close beyond a pre-marked price swing;
- second close outside the cloud;
- breakout-bar high exceeded on a later bar;
- retest acceptance at the cloud edge;
- higher-timeframe bar closes in the required state.
The market-structure guide can supply an independent swing definition. The breakout strategy guide can supply boundary and acceptance rules.
Failure
Define failure by signal family.
Examples:
- bullish cloud breakout closes back inside before confirmation;
- bullish TK cross reverses before the price confirmation event;
- Kijun bounce candidate closes through the invalidation boundary;
- Chikou condition loses clearance before entry becomes valid.
Invalidation
Invalidation means the original setup no longer satisfies a required structural condition. It can be different from a filled trade stop.
Expiry
A candidate should not remain active forever. Example expiry rules:
- no confirmation within
mbars; - opposite cross occurs;
- price reaches the opposite cloud side first;
- new swing boundary replaces the original boundary;
- scheduled session or trading day ends.
Ambiguous
Mark a case ambiguous when bar data cannot reveal event order.
For example, one OHLC candle may show:
- high above CloudTop;
- low below Kijun;
- close above the cloud.
Without lower-timeframe data, the chart cannot prove whether Kijun failure occurred before or after the cloud breakout.
Five Signal Families to Test Separately
1. Price-versus-cloud trend state
This is a filter, not necessarily an entry.
Possible research question:
Do outcomes differ when a separate price setup occurs above, below, or inside the display-aligned cloud?
Do not count every above-cloud bar as a new trade.
2. Tenkan-Kijun cross
Freeze:
- cross equality rule;
- close-only or intrabar calculation;
- cloud-location category at the event bar;
- Chikou requirement, if any;
- confirmation and expiry.
A cross above the cloud and a cross below the cloud should be separate categories rather than assumed “strong” and “weak.”
3. Price-Kijun interaction
Separate:
- price crossing Kijun;
- wick touching Kijun;
- close testing Kijun and rejecting;
- pullback entering a tolerance zone around Kijun;
- Kijun slope or flatness filter.
A “Kijun bounce” cannot be tested until “touch,” “bounce,” and “failure” are defined.
4. Kumo breakout
The cloud is a zone with two boundaries. Record:
- which edge was crossed first;
- whether price started below, inside, or above;
- cloud thickness and orientation at the displayed breakout bar;
- intrabar versus close confirmation;
- return-inside failure;
- opposite-edge failure;
- expiry.
5. Chikou confirmation
Treat Chikou as a separately versioned filter. Possible versions can compare shifted close with:
- historical close;
- historical high-low range;
- historical cloud;
- both price and cloud.
Do not use hindsight to select whichever Chikou comparison supports the observed outcome.
Multi-Timeframe Ichimoku Without Leakage
A common workflow uses a higher timeframe for context and a lower timeframe for events. The main risk is reading an unfinished higher-timeframe candle.
Example:
- daily chart defines above-cloud context;
- hourly chart generates a TK cross;
- the hourly signal occurs before the daily candle closes.
The completed daily Ichimoku state is not available until the daily bar closes. A historical chart can make the final daily state look visible throughout the day, creating hindsight leakage.
Choose one policy:
- Use only the last completed higher-timeframe bar.
- Permit live higher-timeframe values but label them provisional and allow later state changes.
- Run both versions as separate experiments.
The multiple-timeframe analysis guide owns the broader information-availability framework.
Settings: Defaults Are a Version, Not a Universal Answer
The familiar configuration uses 9, 26, 52, and 26-bar displacement. A test should record it as a named version, for example:
ICH-default-9-26-52-d26-v1
Alternative settings create different indicators. When testing them:
- change one dimension at a time where possible;
- state whether displacement changes with the base period;
- preserve the same data and evaluation sample;
- report the number of candidates, not only the best result;
- avoid selecting settings on the final evaluation sample;
- test neighboring values to detect parameter fragility.
There is no evidence that one configuration is universally best for stocks, forex, crypto, futures, daily charts, or intraday charts.
Data and Platform Differences
Stocks
Adjusted and unadjusted histories can change old highs and lows. Record split and dividend treatment.
Futures
A continuous contract may include back-adjustment or ratio adjustment. Roll construction can change the ranges used by Tenkan, Kijun, and Span B.
Forex and CFDs
Broker feeds can have different session boundaries and weekend bars. These differences can alter range windows even when the currency pair name is identical.
Crypto
Exchange-specific highs, lows, outages, and 24/7 session construction can produce different lines across venues.
Missing or corrected bars
A missing extreme can alter a midpoint until it leaves the lookback window. Record how the provider handles missing candles, duplicate candles, and later corrections.
Current bar
Tenkan, Kijun, Span A, Span B, and Chikou can all change while the current high, low, and close are still changing. A closed-bar test should not use the final value before the bar is complete.
Common Interpretation Errors
Calling every component a moving average
Range midpoints behave differently from arithmetic closing-price averages. Use the correct formula.
Treating the projected cloud as future information
The cloud is shifted forward, not calculated from future prices.
Comparing price with the wrong cloud timestamp
Use the display-aligned cloud when interpreting a standard chart. Rename any raw, non-displaced comparison.
Treating cloud color as a trade command
Span order is one state. It does not define an entry, invalidation, cost, or exit.
Assuming cloud thickness proves support strength
Thickness is a measurable distance. The relationship with later outcomes must be tested.
Ignoring equality
Flat range midpoints frequently create equal Tenkan/Kijun or Span A/Span B values. Equality policy changes cross counts.
Mixing signal families
A TK cross, cloud breakout, Kijun interaction, twist, and Chikou clearance are different events. Combining them after seeing the chart creates an unfalsifiable rule.
Using perfect historical fills
A candle close above the cloud does not prove a fill at that close. Live execution can include spread, slippage, gaps, latency, and unavailable liquidity.
Replay Testing Workflow
- Select one symbol, provider, interval, session, and timezone.
- Freeze the Ichimoku periods, displacement, source data, equality, precision, and current-bar policy.
- Choose one signal family.
- Define candidate, confirmation, failure, invalidation, expiry, and ambiguous states.
- Hide future candles in ChartMini replay.
- Record the state before revealing the next bar.
- Advance one candle at a time.
- Preserve failed and expired candidates.
- Apply the same rule across trend, range, gap, and event-driven conditions.
- Separate development, validation, and final evaluation samples.
ChartMini is suitable for lightweight historical candle replay and directional-decision practice. It does not calculate broker-specific fills, reproduce order-book depth, model queue position, or prove that an Ichimoku rule is profitable.
Minimum Research Record
| Field | Example content |
|---|---|
| Rule ID | ICH-TK-CROSS-CLOSE-v1 |
| Symbol/provider | Exact symbol and feed |
| Interval/session/timezone | Complete chart identity |
| Periods/displacement | 9/26/52, d=26 |
| Price input | Close, candle body, high/low, or another defined input |
| Cloud alignment | Display-aligned or custom raw spans |
| Candidate | Exact event inequalities |
| Confirmation | Separate price or time event |
| Failure | Exact state transition |
| Expiry | Maximum bars or replacement event |
| Higher timeframe | Last completed bar or provisional live value |
| Entry assumption | Next open, close, limit, or observation-only |
| Cost model | Spread, slippage, commissions, borrow, funding where relevant |
| Outcome horizon | Fixed bars, structural exit, or multiple horizons |
| Ambiguity policy | Exclude, worst-case, lower-timeframe reconstruction, or separate class |
Evaluation Beyond Win Rate
Useful measures include:
- total candidates;
- confirmed candidates;
- failed-before-confirmation rate;
- expired rate;
- ambiguous rate;
- outcome distribution at several horizons;
- maximum favorable and adverse excursion;
- sensitivity to equality, displacement, and confirmation rules;
- performance by above/inside/below-cloud state;
- performance before and after costs;
- stability across symbols, providers, time periods, and market regimes.
A high win rate can still be unhelpful when losses are larger, signals are rare, assumptions are unrealistic, or settings were selected after reviewing the final sample.
Official Sources
- TradingView: Ichimoku Cloud — component calculations, forward and backward plotting, trend interpretation, and the limitation that forward plotting is not predictive.
- MetaTrader 5: Ichimoku Kinko Hyo — formula relationships, cloud construction, and the platform's documented signal interpretation.
- MetaTrader 5: Trend Indicators — notes that trend indicators are less effective in flat conditions.
- CFTC: Trading System and Hypothetical-Result Warning — limitations of simulated and hypothetical performance claims.
Frequently Asked Questions
What is the Ichimoku Cloud?
The Ichimoku Cloud is a price-based indicator made from range midpoints and shifted price series. It combines the Tenkan-sen, Kijun-sen, Senkou Span A, Senkou Span B, and Chikou Span to display trend context, relative price position, and possible support or resistance zones.
How are Tenkan-sen and Kijun-sen calculated?
Tenkan-sen is the midpoint of the highest high and lowest low over its conversion-period window. Kijun-sen uses the same midpoint formula over its longer base-period window. They are range midpoints, not arithmetic averages of every closing price in the window.
Does the future Ichimoku cloud predict future prices?
No. The cloud is plotted forward, but its values are calculated from price data already available at the calculation bar. The forward display can organize future chart space, but it does not contain future market information or guarantee that price will respect the cloud.
What is a bullish Tenkan-Kijun cross?
A bullish Tenkan-Kijun cross occurs when Tenkan-sen moves from at or below Kijun-sen to above it under a defined equality and closed-bar rule. Its interpretation depends on price location, cloud state, timeframe, and any separate confirmation or failure rules.
Why can Ichimoku values differ between platforms?
Platforms can use different input periods, displacement settings, sessions, timezones, price histories, corporate-action adjustments, futures-roll methods, missing-bar policies, and current-bar behavior. Compare charts only after confirming the symbol, provider, interval, session, and complete indicator configuration.
Can Ichimoku guarantee profitable trades?
No. Ichimoku transforms historical price data into several lines and states. It cannot guarantee direction, entries, fills, risk-reward, or profitability. Any signal family should be defined precisely and tested with costs, failed signals, ambiguous bars, and out-of-sample data.