Ichimoku Cloud Explained: Automating the Most Complex Indicator
Break down the Ichimoku Cloud into programmable components. Learn what each of the five lines means and how to build automated trading signals with the TickAtlas API.
Why Ichimoku is Perfect for Bots
Ichimoku Kinko Hyo ("one glance equilibrium chart") is the most visually complex indicator in technical analysis. Traders spend years learning to read it. But for a bot, it is actually ideal: five distinct numerical components, each with clear programmable rules, that together form a complete trading system — trend, momentum, support, and resistance all in one API call.
The Five Components
Tenkan-sen (Conversion Line)
Average of the 9-period high and low. Acts like a fast moving average. When it crosses above the Kijun-sen, it is a bullish signal.
Kijun-sen (Base Line)
Average of the 26-period high and low. Acts like a slow moving average and a dynamic support/resistance level.
Senkou Span A (Leading Span A)
Average of Tenkan and Kijun, plotted 26 periods ahead. Forms one edge of the cloud.
Senkou Span B (Leading Span B)
Average of the 52-period high and low, plotted 26 periods ahead. Forms the other edge of the cloud.
Chikou Span (Lagging Span)
Current close plotted 26 periods back. Confirms trend when it is above/below price from 26 periods ago.
API Response
// GET /v1/indicators?symbol=EURUSD&timeframe=H4&indicators=ICHIMOKU
{
"success": true,
"data": {
"symbol": "EURUSD",
"timeframe": "H4",
"indicators": {
"ICHIMOKU": {
"tenkan_sen": 1.0862,
"kijun_sen": 1.0845,
"senkou_span_a": 1.0854,
"senkou_span_b": 1.0831,
"chikou_span": 1.0871
}
},
"price": {
"close": 1.0868
},
"timestamp": "2026-03-28T12:00:00Z"
}
} Automated Signal Logic
Ichimoku generates signals from the relationships between its components. Here is a scoring system that quantifies the overall signal strength:
import requests
API_KEY = "your_api_key_here"
BASE_URL = "https://tickatlas.com/v1"
def ichimoku_score(symbol: str, timeframe: str = "H4") -> dict:
"""Score Ichimoku signal from -5 (strong bearish) to +5 (strong bullish)."""
resp = requests.get(f"{BASE_URL}/indicators", params={
"symbol": symbol,
"timeframe": timeframe,
"indicators": "ICHIMOKU"
}, headers={"X-API-Key": API_KEY})
data = resp.json()["data"]
ich = data["indicators"]["ICHIMOKU"]
price = data["price"]["close"]
score = 0
reasons = []
# 1. Price vs Cloud
cloud_top = max(ich["senkou_span_a"], ich["senkou_span_b"])
cloud_bottom = min(ich["senkou_span_a"], ich["senkou_span_b"])
if price > cloud_top:
score += 1
reasons.append("Price above cloud (bullish)")
elif price < cloud_bottom:
score -= 1
reasons.append("Price below cloud (bearish)")
else:
reasons.append("Price inside cloud (neutral)")
# 2. Tenkan-sen vs Kijun-sen (TK cross)
if ich["tenkan_sen"] > ich["kijun_sen"]:
score += 1
reasons.append("Tenkan above Kijun (bullish cross)")
else:
score -= 1
reasons.append("Tenkan below Kijun (bearish cross)")
# 3. Cloud color (future cloud direction)
if ich["senkou_span_a"] > ich["senkou_span_b"]:
score += 1
reasons.append("Cloud is bullish (Span A > Span B)")
else:
score -= 1
reasons.append("Cloud is bearish (Span A < Span B)")
# 4. Price vs Kijun-sen
if price > ich["kijun_sen"]:
score += 1
reasons.append("Price above Kijun (bullish)")
else:
score -= 1
reasons.append("Price below Kijun (bearish)")
# 5. Chikou span vs price
if ich["chikou_span"] > price:
score += 1
reasons.append("Chikou above price (bullish confirmation)")
else:
score -= 1
reasons.append("Chikou below price (bearish confirmation)")
# Determine signal
if score >= 4:
signal = "STRONG_BUY"
elif score >= 2:
signal = "BUY"
elif score <= -4:
signal = "STRONG_SELL"
elif score <= -2:
signal = "SELL"
else:
signal = "NEUTRAL"
return {
"symbol": symbol,
"signal": signal,
"score": score,
"reasons": reasons
} Multi-Pair Scanner
# Scan all major pairs with Ichimoku
pairs = ["EURUSD", "GBPUSD", "USDJPY", "AUDUSD", "XAUUSD", "BTCUSD"]
for pair in pairs:
result = ichimoku_score(pair)
if result["signal"] in ("STRONG_BUY", "STRONG_SELL"):
print(f"\n{result['symbol']}: {result['signal']} (score: {result['score']})")
for reason in result["reasons"]:
print(f" - {reason}")
# Example output:
# XAUUSD: STRONG_BUY (score: 5)
# - Price above cloud (bullish)
# - Tenkan above Kijun (bullish cross)
# - Cloud is bullish (Span A > Span B)
# - Price above Kijun (bullish)
# - Chikou above price (bullish confirmation) Cloud as Support and Resistance
The cloud acts as a dynamic support/resistance zone. Use it to set stop losses and take profit targets:
def ichimoku_levels(symbol: str) -> dict:
"""Extract key support/resistance levels from Ichimoku."""
resp = requests.get(f"{BASE_URL}/indicators", params={
"symbol": symbol,
"timeframe": "H4",
"indicators": "ICHIMOKU"
}, headers={"X-API-Key": API_KEY})
ich = resp.json()["data"]["indicators"]["ICHIMOKU"]
return {
"resistance_1": max(ich["senkou_span_a"], ich["senkou_span_b"]),
"support_1": min(ich["senkou_span_a"], ich["senkou_span_b"]),
"key_level": ich["kijun_sen"], # Strong S/R level
"fast_level": ich["tenkan_sen"], # Minor S/R level
} Common Mistakes
Trading Inside the Cloud
The cloud represents indecision. Wait for price to break clearly above or below before taking signals.
Using on Low Timeframes
Ichimoku was designed for daily charts. H4 is the lowest timeframe where it remains reliable. Avoid M5/M15.
Ignoring the Chikou Span
Many traders skip it, but the Chikou span is the final confirmation. A signal is stronger when all five components agree.
Further Reading
Try this with live data
Every account gets $2.50 in free PAYG credits. No card required — paste your API key and run the code above against live broker data.
Keep reading
All articles- Guide 14 min read
Algorithmic Trading for Beginners: From Zero to First Bot
A beginner-friendly guide to algorithmic trading. Learn the core concepts, pick your first strategy, and build a working bot with Python and the TickAtlas API.
March 28, 2026
- Guide 13 min read
Building Autonomous Trading Agents with LLMs
A practical guide to building AI agents that autonomously monitor markets, analyze opportunities, and generate trading signals using LLMs and the TickAtlas API.
March 28, 2026
- Guide 10 min read
Bitcoin Technical Analysis API: RSI, MACD, and More for BTC
A developer's guide to analyzing Bitcoin with technical indicators via the TickAtlas API. Covers BTC-specific strategies, volatility management, and real code examples.
March 28, 2026