Ichimoku Cloud

Ichimoku is a complete system in one indicator: trend, support and resistance, momentum and entries, shown with five lines and a "cloud".

What it is

Ichimoku Kinko Hyo, "equilibrium chart at a glance", was designed by the Japanese journalist Goichi Hosoda before the Second World War. It uses the midpoints of highs and lows over several periods to build an overall picture of the market.

How it's calculated

  1. Tenkan-sen (conversion line) = midpoint of the 9-period high and low
  2. Kijun-sen (base line) = midpoint of the 26-period high and low
  3. Senkou Span A = average of Tenkan and Kijun, plotted 26 periods ahead
  4. Senkou Span B = midpoint of the 52-period high and low, 26 periods ahead
  5. Chikou Span = the close, plotted 26 periods back

How traders read it

  • Price above the cloud is an uptrend, below a downtrend, inside no clear trend.
  • The cloud's thickness shows how strong its support or resistance is.
  • A Tenkan–Kijun cross, especially above the cloud, is the classic entry signal.

Settings

The original settings are 9, 26 and 52, designed for the old six-day Japanese working week; some crypto traders try larger values.

Where it misleads

  • Ichimoku's many lines are confusing at first; start with price's position relative to the cloud.
  • In ranges price keeps entering the cloud and signals weaken.

Its Pine Script on Vlevel

This is the script the chart runs. In the chart's indicators window you can open it, change it and save your own copy.

Ichimoku Cloud · Pine Script v6
//@version=6
indicator("Ichimoku Cloud", shorttitle = "Ichimoku", overlay = true)
conversionPeriods   = input.int(9, "Conversion Line Length", minval = 1)
basePeriods         = input.int(26, "Base Line Length", minval = 1)
laggingSpan2Periods = input.int(52, "Leading Span B Length", minval = 1)
displacement        = input.int(26, "Lagging Span", minval = 1)
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine       = donchian(basePeriods)
leadLine1      = math.avg(conversionLine, baseLine)
leadLine2      = donchian(laggingSpan2Periods)
plot(conversionLine, "Conversion Line", color = #1fb8ff)
plot(baseLine, "Base Line", color = #ff4d6a)
plot(close, "Lagging Span", offset = -displacement + 1, color = color.new(#c084fc, 40))
p1 = plot(leadLine1, "Leading Span A", offset = displacement - 1, color = color.new(#2ee6a6, 30))
p2 = plot(leadLine2, "Leading Span B", offset = displacement - 1, color = color.new(#ff4d6a, 30))
fill(p1, p2, color = leadLine1 > leadLine2 ? color.new(#2ee6a6, 90) : color.new(#ff4d6a, 90))

Indicators describe past prices; none predicts the future. For education, not investment advice.