☁️ Indicator Cluster

Ichimoku Cloud Pine Script — Custom Indicator Đầy Đủ

Bởi Dan Machado · 10 phút đọc · Code ready

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

Tenkan-sen (Conversion Line)

(9-period high + 9-period low) / 2. Fast moving average. Momentum ngắn hạn.

Kijun

Kijun-sen (Base Line)

(26-period high + 26-period low) / 2. Slow moving average. Trend dài hạn + dynamic S/R.

Senkou A

Senkou Span A (Leading Span A)

(Tenkan + Kijun) / 2, plotted 26 periods ahead. Cạnh trên/dưới của Cloud.

Senkou B

Senkou Span B (Leading Span B)

(52-period high + 52-period low) / 2, plotted 26 periods ahead. Cloud còn lại.

Chikou

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

▸ Pine Script v5 · Ichimoku Cloud Custom COPY ↗
//@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

  1. Mở TradingView, chọn asset (forex/crypto best, V75 OK)
  2. Click “Pine Editor” tab
  3. Paste code, save (Ctrl+S)
  4. Click “Add to chart”
  5. Cloud, lines, dashboard hiển thị
  6. 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

DM

Dan Machado

Founder IA Trader Pro · Ichimoku trader cho forex 5+ năm

⚠️ Disclaimer: Indicators không guarantee profit. Backtest trước live. Deriv không được cấp phép bởi SBV. Bài viết này có chứa affiliate link Deriv. Disclaimer đầy đủ.