Ichimoku Cloud Pine Script — Custom Indicator Đầy Đủ
Ichimoku Kinko Hyo (“nhất mục cân hành đồ”) là indicator Nhật Bản — một hệ thống trading hoàn chỉnh trong một indicator. Bao gồm 5 components cho trend, momentum, support/resistance. Tutorial này có code Pine Script v5 custom với alerts và dashboard.
5 Components của Ichimoku
Tenkan-sen (Conversion Line)
(9-period high + 9-period low) / 2. Fast moving average. Momentum ngắn hạn.
Kijun-sen (Base Line)
(26-period high + 26-period low) / 2. Slow moving average. Trend dài hạn + dynamic S/R.
Senkou Span A (Leading Span A)
(Tenkan + Kijun) / 2, plotted 26 periods ahead. Cạnh trên/dưới của Cloud.
Senkou Span B (Leading Span B)
(52-period high + 52-period low) / 2, plotted 26 periods ahead. Cloud còn lại.
Chikou Span (Lagging Span)
Close price plotted 26 periods behind. Confirmation momentum.
☁️ The Cloud (Kumo)
Khoảng giữa Senkou A và Senkou B = Cloud (Kumo). Price trên Cloud = bullish. Price dưới Cloud = bearish. Price trong Cloud = sideways/uncertain. Cloud thick = strong S/R, Cloud thin = weak.
AI Prompt để Generate
📋 PROMPT
“Tạo Pine Script v5 Ichimoku Cloud custom indicator. Standard settings: Tenkan 9, Kijun 26, Senkou B 52, displacement 26. Plot all 5 components với colors. Fill cloud green khi bullish, red khi bearish. Add signal arrows: BUY khi price breaks above cloud + Tenkan crosses Kijun up. Add status dashboard. Alerts cho cloud breakouts. Overlay=true.”
Code Complete — Ichimoku Cloud
//@version=5
indicator("Ichimoku Cloud Custom — IA Trader Pro", overlay=true)
// === INPUTS ===
tenkanLen = input.int(9, "Tenkan Period")
kijunLen = input.int(26, "Kijun Period")
senkouBLen = input.int(52, "Senkou B Period")
displacement = input.int(26, "Displacement")
// === CALCULATIONS ===
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
tenkan = donchian(tenkanLen)
kijun = donchian(kijunLen)
senkouA = math.avg(tenkan, kijun)
senkouB = donchian(senkouBLen)
chikou = close
// === PLOT LINES ===
plot(tenkan, "Tenkan-sen", color=#00E676, linewidth=1)
plot(kijun, "Kijun-sen", color=#448AFF, linewidth=2)
plot(chikou, "Chikou Span", color=#E040FB, linewidth=1, offset=-displacement)
// === PLOT CLOUD ===
spanA = plot(senkouA, "Senkou A", color=color.new(#FFC107, 50),
linewidth=1, offset=displacement)
spanB = plot(senkouB, "Senkou B", color=color.new(#FF5252, 50),
linewidth=1, offset=displacement)
// Cloud fill — green when bullish, red when bearish
cloudBullish = senkouA > senkouB
fill(spanA, spanB,
color=cloudBullish ? color.new(#00E676, 85) : color.new(#FF5252, 85),
title="Kumo Cloud")
// === SIGNAL LOGIC ===
// Current cloud values (not displaced) for signal detection
cloudTop = math.max(senkouA, senkouB)
cloudBottom = math.min(senkouA, senkouB)
priceAboveCloud = close > cloudTop
priceBelowCloud = close < cloudBottom
priceInCloud = close <= cloudTop and close >= cloudBottom
tkCrossUp = ta.crossover(tenkan, kijun)
tkCrossDown = ta.crossunder(tenkan, kijun)
// Strong signals: TK cross + price position
buySignal = tkCrossUp and priceAboveCloud
sellSignal = tkCrossDown and priceBelowCloud
// Cloud breakout signals
breakAboveCloud = ta.crossover(close, cloudTop)
breakBelowCloud = ta.crossunder(close, cloudBottom)
// === PLOT SIGNALS ===
plotshape(buySignal, title="Strong BUY",
location=location.belowbar, color=color.new(#00E676, 0),
style=shape.labelup, size=size.normal, text="BUY", textcolor=color.white)
plotshape(sellSignal, title="Strong SELL",
location=location.abovebar, color=color.new(#FF5252, 0),
style=shape.labeldown, size=size.normal, text="SELL", textcolor=color.white)
plotshape(breakAboveCloud, title="Cloud Break Up",
location=location.belowbar, color=color.new(#00E676, 30),
style=shape.triangleup, size=size.tiny)
plotshape(breakBelowCloud, title="Cloud Break Down",
location=location.abovebar, color=color.new(#FF5252, 30),
style=shape.triangledown, size=size.tiny)
// === STATUS DASHBOARD ===
var table dash = table.new(position.top_right, 2, 5,
bgcolor=color.new(color.black, 20),
border_width=1, border_color=color.gray)
if barstate.islast
pricePos = priceAboveCloud ? "ABOVE CLOUD" :
priceBelowCloud ? "BELOW CLOUD" : "IN CLOUD"
priceColor = priceAboveCloud ? #00E676 :
priceBelowCloud ? #FF5252 : #FFC107
tkStatus = tenkan > kijun ? "BULLISH" : "BEARISH"
tkColor = tenkan > kijun ? #00E676 : #FF5252
cloudStatus = cloudBullish ? "GREEN" : "RED"
cloudColor = cloudBullish ? #00E676 : #FF5252
overall = (priceAboveCloud and tenkan > kijun and cloudBullish) ? "🟢 STRONG BULL" :
(priceBelowCloud and tenkan < kijun and not cloudBullish) ? "🔴 STRONG BEAR" :
"⚪ NEUTRAL"
overallColor = (priceAboveCloud and tenkan > kijun and cloudBullish) ? #00E676 :
(priceBelowCloud and tenkan < kijun and not cloudBullish) ? #FF5252 :
color.gray
table.cell(dash, 0, 0, "ICHIMOKU", text_color=color.white,
text_size=size.small, bgcolor=color.new(#E040FB, 30))
table.cell(dash, 1, 0, "STATUS", text_color=color.white,
text_size=size.small, bgcolor=color.new(#E040FB, 30))
table.cell(dash, 0, 1, "Price Pos", text_color=color.white, text_size=size.tiny)
table.cell(dash, 1, 1, pricePos, text_color=priceColor, text_size=size.tiny)
table.cell(dash, 0, 2, "Tenkan/Kijun", text_color=color.white, text_size=size.tiny)
table.cell(dash, 1, 2, tkStatus, text_color=tkColor, text_size=size.tiny)
table.cell(dash, 0, 3, "Cloud", text_color=color.white, text_size=size.tiny)
table.cell(dash, 1, 3, cloudStatus, text_color=cloudColor, text_size=size.tiny)
table.cell(dash, 0, 4, "OVERALL", text_color=color.white, text_size=size.tiny,
bgcolor=color.new(#FFC107, 60))
table.cell(dash, 1, 4, overall, text_color=overallColor, text_size=size.tiny,
bgcolor=color.new(#FFC107, 80))
// === ALERTS ===
alertcondition(buySignal, title="Ichimoku Strong BUY",
message="Strong BUY: TK cross up + price above cloud")
alertcondition(sellSignal, title="Ichimoku Strong SELL",
message="Strong SELL: TK cross down + price below cloud")
alertcondition(breakAboveCloud, title="Cloud Breakout Up",
message="Price broke above Kumo cloud — bullish")
alertcondition(breakBelowCloud, title="Cloud Breakout Down",
message="Price broke below Kumo cloud — bearish")
Cách Sử Dụng
- Mở TradingView, chọn asset (forex/crypto best, V75 OK)
- Click “Pine Editor” tab
- Paste code, save (Ctrl+S)
- Click “Add to chart”
- Cloud, lines, dashboard hiển thị
- Trade chỉ khi dashboard show “🟢 STRONG BULL” hoặc “🔴 STRONG BEAR”
Trading Strategy với Ichimoku
Strong Buy Setup (5-Point Confirmation)
- 1. Price trên Cloud
- 2. Tenkan trên Kijun
- 3. Cloud màu xanh (Senkou A > Senkou B)
- 4. Chikou Span trên price 26 periods ago
- 5. Tenkan/Kijun crossover xảy ra recent
Càng nhiều confirmations align → signal càng mạnh.
Exit Rules
- Exit BUY: Price closes dưới Kijun-sen, HOẶC price enters Cloud
- Stop loss: Dưới Cloud bottom (Senkou B level)
- Take profit: Trailing stop bằng Kijun-sen
Best Timeframes
- H4-D1: Best — Ichimoku designed cho swing trading
- H1: OK cho intraday
- Avoid M1-M15: Quá nhiều noise, Cloud lag too much
✓ Pros
1. Complete system — trend, momentum, S/R trong 1 indicator
2. Visual clarity — Cloud makes trend obvious
3. Forward-looking — Cloud projected 26 periods ahead
4. Multiple confirmation — 5 components reduce false signals
⚠️ Cons
1. Lagging — Cloud calculation uses historical data
2. Complex — beginners overwhelmed by 5 components
3. Sideways markets — price stuck in Cloud = no signals
4. V75 less ideal — synthetic indices favor mean reversion
Ichimoku Cho V75?
Ichimoku designed cho stocks/forex với trends. V75 (synthetic) ít trend hơn — mean reversion property. Recommend:
- Ichimoku trên forex/crypto — work tốt nhất
- V75 → pakai SuperTrend + MACD hoặc RSI mean reversion
🚀 Test Ichimoku trên Deriv chart (forex pairs available):
Mở Demo Deriv Miễn PhíBài Liên Quan
- SuperTrend + MACD Combo
- Auto Fibonacci Indicator
- 10 Pine Scripts Ready
- ChatGPT & Claude cho Indicators
- Backtest Strategies
