"ichimoku"に関するスクリプトを検索
Ichimoku_on_steroids v 1.0 (Scalper's) OLAgain, ichimoku based signal generator, this time using the Kijun-sen (Base line) and the Tenkan-sen (Conversion line) to assess price action.
Works best on timeless charts (e.g. Point & Figure, Renko's, ...).
Use with caution !! ... or with very small TP targets !!
Ichimoku_on_steroids v 1.0 OLBased on the original Ichimoku formula, this indicator provides decent long/short entries/exit signals. It takes into account an EMA on price as well as the two leading lines (without the future projection). Works on all timeframes, on all bar style's (incl. Renko & PnF). Configurable to your taste in the settings.
Black line = EMA on close // Green line = Leading Span A // Red line = Leading Span B
Green = Long bias // Red = Short bias // Yellow = Neutral bias or close position
The cautious trader might want to wait for confirmation (red or green) before entering a position ; the riskier trader might want to enter as soon as neutral territory is reached.
As usual : use it at your own risk ;)
Comments / suggestions welcome
PS: there are more scripts in the pipeline ... :)
Machine Learning + IchimokuIchimoku Cloud + Machine Learning Levels is an advanced indicator that merges a classic trend tool with machine-learned supply & demand zones. Combining the two can help traders identify trends and key price zones with greater confidence when both signals align!
How it Works
The Ichimoku Cloud component identifies the trend direction and momentum at a glance – it shows support/resistance areas via its cloud (Kumo) and signals potential trend changes when the Tenkan-sen and Kijun-sen lines cross. Meanwhile, the Machine Learning module analyzes historical price data to project potential support and resistance levels (displayed as horizontal lines) that the algorithm deems significant. By combining these, the script offers a two-layer confirmation: Ichimoku outlines the broader trend and equilibrium, while the ML levels pinpoint specific price levels where the price may react. For example, if price is above the Ichimoku Cloud (uptrend) and also near an ML-predicted support, the confluence of these signals strengthens the case for a bounce.
How to Use
Apply the indicator to a chart like any other TradingView script. It works on multiple asset classes (see supported list below). Once added:
Ichimoku Lines
Tenkan-sen (Blue): Short-term average reflecting recent highs/lows.
Kijun-sen (Red): Medium-term baseline for support/resistance.
Senkou Span A (Green) & Senkou Span B (Orange) form the “Cloud” (Kumo). Price above the Cloud often signals a bullish environment; price below it can signal a bearish environment.
Chikou Span (Purple): Plots current closing price shifted back, helping gauge momentum vs. past price.
ML-Predicted Support/Resistance Lines (Green/Red Horizontal Lines)
Green Horizontal Lines – Potential support zones.
Red Horizontal Lines – Potential resistance zones.
These dynamically adjust based on the specific asset and are updated as new historical data becomes available.
Password (for Advanced Features)
In the indicator’s Settings, there is an input field labeled “Password.” The password corresponds to the ticker(s) listed below.
Stocks
TSLA, NVDA, AAPL, AMZN, PLTR, AMD, META, MSFT, MSTR, GOOG, GME, COIN, NFLX, BABA, UBER, HOOD, NKE
Cryptocurrencies
ETH, BTC, SOL, BNB, XRP, ADA, DOT, DOGE, LTC, JUP, LINK, INJ, FET, SAND, HBAR, TRX, SHIB, UNI
(If you attach the indicator to any unlisted ticker, you will only see the Ichimoku Cloud.)
Why It’s Unique
This script is a fresh take on market analysis – it’s original in fusing Ichimoku’s visual trend mapping with machine learning. The Ichimoku framework provides time-proven trend insight, and the ML levels add forward-looking context specific to each asset. By uniting them, the indicator aims to filter out false signals and highlight high-probability zones. No repainting occurs: Ichimoku values are based on closed data, and ML levels are computed from historical patterns (they do not retroactively change).
Ichimoku Cloud + Machine Learning Levels offers an informative blend of old and new analysis techniques. It clearly shows where price is relative to trend (via Ichimoku) and where it might react in the future (via ML levels). Use it to gain a richer view of the market’s behavior. I hope this indicator provides valuable insights for your trading decisions. Happy trading!
Ichimoku-MACD Combined ScreenerScreener Combiné Ichimoku-MACD : Détection de signaux de retournement confirmés
Cet indicateur combine la puissance de l'Ichimoku Oscillator et du MACD/MM pour identifier des opportunités de trading de haute probabilité.
FONCTIONNEMENT :
- Détecte les signaux MACDUP (achat) uniquement lorsque la tendance Ichimoku est haussière
- Détecte les signaux MACDDOWN (vente) uniquement lorsque la tendance Ichimoku est baissière
- Filtre les faux signaux en exigeant une confirmation de tendance
SIGNAUX :
- Signal d'achat (barre verte) : MACDUP se produit pendant une tendance Ichimoku positive
- Signal de vente (barre rouge) : MACDDOWN se produit pendant une tendance Ichimoku négative
- Les signaux récents sont suivis pendant une période configurable pour faciliter le filtrage
UTILISATION COMME SCREENER :
- Dans le filtre, recherchez les valeurs "Signal Achat" > 0 pour les opportunités d'achat
- Dans le filtre, recherchez les valeurs "Signal Vente" > 0 pour les opportunités de vente
- Idéal pour détecter les retournements de tendance ou les reprises de tendance après consolidation
PARAMÈTRES AJUSTABLES :
- Configuration Ichimoku : personnalisez les périodes de calcul et la protection contre les faux signaux
- Configuration MACD/MM : ajustez les paramètres pour adapter la sensibilité
- Période de recherche : définissez combien de temps un signal reste actif pour le screener
Ichimoku Fibonacci HybridHey guys, this is a variation of Ichimoku using Fibonacci principles.
Overview
As you may know, Ichimoku uses in its calculations (high + low)/2 to calculate Tenkan-sen (Conversion line) and Kijun-sen (Base line) for different periods: Tenkan is a shorter period, so it reacts faster to reversals, while Kijun is slower, so it reacts slower, and it is contextually more reliable due to how conservative it is.
Why does the Ichimoku Cloud works? My theory that inspired this indicator is that it works because it looks at 50% retracements from highest point to the lowest point. In other words, Tenkan plots the 50% line between the peak and the trough from the recent period, which has proven to often be a good estimation for retracements. Similarly, Kijun applies the same, but for a longer period*.
However, if we look at Fibonacci retracement, it is often the case that price retracts to those magical percentages: 23.6%, 38.2%, 50%, 61.8%, and sometimes even 88.6% and 78.6%. Why this happens is largely unknown to the academic community, but, empirically, it often seems that these numbers just work.
Therefore, I wanted to apply this principle to Ichimoku calculations, and instead of calculating (high + low)/2, I calculated both (high + low) * 0.382 and (high + low) * 0.618. These lines should provide pessimistic/bearish estimations, and optimistic/bullish estimations, respectively. Naturally, these results in 4 extra lines: a bearish Tenkan/Kijun pair and a bullish Tenkan/Kijun pair.
Therefore, applying this indicator will crowd the chart quite a bit: you have 6 lines on the chart among which 2 of them are the original Tenkan and Kijun lines, and the other 4 are Fib-inspired Tenkan/Kijun lines.
Usage
As with most indicators, usage is subjective to the user and relative to the chart. However, some ways in which this indicator can be used are as follows:
In a strong uptrend, price is typically above both Ichi Kijun and Tenkan. In this case, you can use this indicator to provide you with a new pair of bullish Kijun/Tenkan that provide the same usage as before. Similarly, in a downtrend, the bearish Kijun/Tenkan apply.
Using the new lines, one can apply R/S levels, crossover signals, overbought/oversold areas, price channels, retracement levels, and trend indications.
One may simply use it out of convenience, as it automatically computes potential areas of interest without having to perform manual work.
Please note that because the indicator was so full, I did not keep the Cloud, nor did I keep the Chikou span (Lagging span.) These can be easily implemented, but it would crowd the chart to an extent that it would be difficult to gauge much information. However, I did consider adding them as optional indicators that are disabled by default, and I may potentially do so in the future. For reference, this would help by simply disabling everything else besides the "bullish Ichi" in an uptrend.
Footnotes
* I have heard people referring to Ichimoku Cloud as "a glorified average mean," but, mathematically, I don't believe there is much relationship between MAs and Ichimoku Cloud. However, I acknowledge the visual similarity between the two and the potential to use both in a similar fashion, so one may interpret this indicator as such if they please.
Ichimoku + SuperTrend + Oscillator + Divergence + SMC Lite//@version=5
indicator("Ichimoku + SuperTrend + Oscillator + Divergence + SMC Lite", overlay=true, max_labels_count=500, max_lines_count=500, max_boxes_count=500, max_bars_back=1000)
// ====================
// === CODE BLOCK 1: Ichimoku + SuperTrend + Oscillator Monitor + Divergence ===
// ====================
// --- User Inputs ---
lowerTF = input.timeframe("5", "Lower Timeframe (Ichimoku + SuperTrend)")
higherTF = input.timeframe("60", "Higher Timeframe (Tenkan/Kijun check)")
tenkanLength = input.int(9, "Tenkan-sen Length (Lower TF)")
kijunLength = input.int(26, "Kijun-sen Length (Lower TF)")
senkouSpanBLength = input.int(52, "Senkou Span B Length (Lower TF)")
displacement = input.int(26, "Displacement (Lower TF)")
showCloud = input.bool(true, "Show Kumo Cloud (Lower TF)")
buyColor = input.color(color.new(color.green, 0), "Buy Candle Color")
sellColor = input.color(color.new(color.red, 0), "Sell Candle Color")
crossCandleColor = input.color(color.new(color.yellow, 0), "Cross Candle Color")
bodyFilterColor = input.color(color.new(color.lime,0), "Body Filter Active Color")
htfCrossColor = input.color(color.new(color.orange,0), "HTF Cross Signal Color")
stopColor = input.color(color.new(color.red,0), "Stop Line Color")
targetColor = input.color(color.new(color.blue,0), "Target Line Color")
cooldownBars = input.int(5, "Cooldown Bars After Signal")
// --- Higher TF Ichimoku ---
tenkanLengthHTF = input.int(36, "Tenkan Length (Higher TF)")
kijunLengthHTF = input.int(103, "Kijun Length (Higher TF)")
showTenkanHTF = input.bool(true, "Show Tenkan (HTF)")
showKijunHTF = input.bool(true, "Show Kijun (HTF)")
tenkanHTFValue = request.security(syminfo.tickerid, higherTF, (ta.highest(high, tenkanLengthHTF)+ta.lowest(low, tenkanLengthHTF))/2)
kijunHTFValue = request.security(syminfo.tickerid, higherTF, (ta.highest(high, kijunLengthHTF)+ta.lowest(low, kijunLengthHTF))/2)
plot(showTenkanHTF ? tenkanHTFValue : na, color=color.blue, linewidth=2, title="Tenkan HTF")
plot(showKijunHTF ? kijunHTFValue : na, color=color.red, linewidth=2, title="Kijun HTF")
// --- Lower TF Ichimoku ---
tenkan = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, tenkanLength) + ta.lowest(low, tenkanLength)) / 2)
kijun = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, kijunLength) + ta.lowest(low, kijunLength)) / 2)
senkouA = request.security(syminfo.tickerid, lowerTF, (tenkan + kijun) / 2)
senkouB = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, senkouSpanBLength) + ta.lowest(low, senkouSpanBLength)) / 2)
plot(tenkan, color=color.blue, title="Tenkan-sen (LTF)", linewidth=2)
plot(kijun, color=color.red, title="Kijun-sen (LTF)", linewidth=2)
sA = plot(senkouA , display=display.none)
sB = plot(senkouB , display=display.none)
cloudColor = showCloud ? (senkouA > senkouB ? color.new(color.green, 80) : color.new(color.red, 80)) : na
fill(sA, sB, color=cloudColor)
// --- Detect Crosses ---
crossUp = ta.crossover(tenkan, kijun)
crossDown = ta.crossunder(tenkan, kijun)
crossUpHTF = ta.crossover(tenkanHTFValue, kijunHTFValue)
crossDownHTF = ta.crossunder(tenkanHTFValue, kijunHTFValue)
candle2AboveCloud = close > math.max(senkouA , senkouB )
candle2BelowCloud = close < math.min(senkouA , senkouB )
// --- SuperTrend Lower TF ---
atrPeriodLTF = 12
multiplierLTF = 3.0
atrValueLTF = ta.atr(atrPeriodLTF)
upLTF = hl2 - multiplierLTF * atrValueLTF
dnLTF = hl2 + multiplierLTF * atrValueLTF
var int trendLTF = 1
trendLTF := trendLTF == -1 and close > dnLTF ? 1 : trendLTF == 1 and close < upLTF ? -1 : trendLTF
// --- SuperTrend Higher TF ---
useHTFST = input.bool(true, "Use HTF SuperTrend")
atrPeriodHTF = input.int(12, "HTF SuperTrend ATR")
multiplierHTF = input.float(3.0, "HTF SuperTrend Multiplier")
hl2HTF = request.security(syminfo.tickerid, higherTF, hl2)
atrHTF = request.security(syminfo.tickerid, higherTF, ta.atr(atrPeriodHTF))
upHTF = hl2HTF - multiplierHTF * atrHTF
dnHTF = hl2HTF + multiplierHTF * atrHTF
var int trendHTF = 1
trendHTF := trendHTF == -1 and close > dnHTF ? 1 : trendHTF == 1 and close < upHTF ? -1 : trendHTF
// --- Body Filter ---
useBodyFilter = input.bool(true, "Use Body Filter")
bodyMinPerc = input.float(20, "Min Body %")
bodyMaxPerc = input.float(100, "Max Body %")
bodyLen = math.abs(close - open)
candleLen = high - low
bodyPerc = (bodyLen / candleLen) * 100
bodyFilterPass = not useBodyFilter or (bodyPerc >= bodyMinPerc and bodyPerc <= bodyMaxPerc)
// --- Reward Filter ---
useReward = input.bool(true, "Use Reward 1:1 Filter")
stopLossPerc = input.float(1.5, "Stop Loss %")
reward1 = input.float(1.0, "Target 1 R/R")
reward2 = input.float(2.0, "Target 2 R/R")
reward3 = input.float(3.0, "Target 3 R/R")
rewardPass = not useReward or ((math.abs(close - tenkanHTFValue) * reward1) <= math.abs(kijunHTFValue - close))
// --- TSI Higher TF ---
tsiLong = input.int(25, "TSI Long")
tsiShort = input.int(13, "TSI Short")
tsiHTF = ta.tsi(request.security(syminfo.tickerid, higherTF, close), tsiLong, tsiShort)
// --- Lower TF Signals ---
buySignalLTF = (crossUp and candle2AboveCloud) and trendLTF == 1
sellSignalLTF = (crossDown and candle2BelowCloud) and trendLTF == -1
plotshape(crossUpHTF, title="HTF Buy Cross", location=location.belowbar, color=htfCrossColor, style=shape.triangleup, size=size.small)
plotshape(crossDownHTF, title="HTF Sell Cross", location=location.abovebar, color=htfCrossColor, style=shape.triangledown, size=size.small)
buyConfirmedRaw = (buySignalLTF and close > tenkanHTFValue and (not useHTFST or trendHTF==1)) and rewardPass and (tsiHTF > 0)
sellConfirmedRaw = (sellSignalLTF and close < tenkanHTFValue and (not useHTFST or trendHTF==-1)) and rewardPass and (tsiHTF < 0)
// --- Cooldown ---
var int barsSinceSignal = cooldownBars
barsSinceSignal += 1
buyConfirmed = buyConfirmedRaw and barsSinceSignal >= cooldownBars
sellConfirmed = sellConfirmedRaw and barsSinceSignal >= cooldownBars
if buyConfirmed or sellConfirmed
barsSinceSignal := 0
// --- Plot Final Signals ---
plotshape(buyConfirmed and bodyFilterPass, title="Buy Signal", location=location.belowbar, color=buyColor, style=shape.triangleup, size=size.small)
plotshape(sellConfirmed and bodyFilterPass, title="Sell Signal", location=location.abovebar, color=sellColor, style=shape.triangledown, size=size.small)
plotshape(buyConfirmed and not bodyFilterPass, title="Buy Signal (Filtered)", location=location.belowbar, color=bodyFilterColor, style=shape.triangleup, size=size.tiny)
plotshape(sellConfirmed and not bodyFilterPass, title="Sell Signal (Filtered)", location=location.abovebar, color=bodyFilterColor, style=shape.triangledown, size=size.tiny)
barcolor(crossUp or crossDown ? crossCandleColor : na)
barcolor(buyConfirmed and bodyFilterPass ? buyColor : sellConfirmed and bodyFilterPass ? sellColor : na)
// --- Stop & Targets ---
var float lastBuyPrice = na
var float lastSellPrice = na
var bool buyActive = false
var bool sellActive = false
f_drawLine(_price) =>
line.new(bar_index, _price, bar_index+3, _price, color=targetColor, width=2, style=line.style_dotted)
if buyConfirmed and not buyActive and not sellActive
buyActive := true
lastBuyPrice := close
line.new(bar_index, close*(1-stopLossPerc/100), bar_index+3, close*(1-stopLossPerc/100), color=stopColor, width=2, style=line.style_dotted)
f_drawLine(close*(1+reward1/100))
f_drawLine(close*(1+reward2/100))
f_drawLine(close*(1+reward3/100))
if buyActive
if low <= lastBuyPrice*(1-stopLossPerc/100) or high >= lastBuyPrice*(1+reward1/100)
buyActive := false
if sellConfirmed and not sellActive and not buyActive
sellActive := true
lastSellPrice := close
line.new(bar_index, close*(1+stopLossPerc/100), bar_index+3, close*(1+stopLossPerc/100), color=stopColor, width=2, style=line.style_dotted)
f_drawLine(close*(1-reward1/100))
f_drawLine(close*(1-reward2/100))
f_drawLine(close*(1-reward3/100))
if sellActive
if high >= lastSellPrice*(1+stopLossPerc/100) or low <= lastSellPrice*(1-reward1/100)
sellActive := false
// --- Oscillator Panel ---
showPanel = input.bool(true, "Show Oscillator Panel")
panelX = input.int(20, "Panel X Offset (Bars)")
panelY = input.int(50, "Panel Y Offset (Pixels)")
panelBgColor = input.color(color.new(color.black, 85), "Panel Background Color")
panelTextSize = input.string("normal", "Text Size", options= )
// MACD
macdFast = input.int(12)
macdSlow = input.int(26)
macdSignal= input.int(9)
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdBull = macdLine > signalLine
// RSI
rsiLen = input.int(14)
rsiVal = ta.rsi(close, rsiLen)
rsiBull = rsiVal > 50
// TSI
tsiVal = ta.tsi(close, 25, 13)
tsiBull = tsiVal > 0
// Divergence detection (RSI, MACD, TSI)
leftBars = input.int(2)
rightBars = input.int(2)
rsiLow = ta.pivotlow(rsiVal, leftBars, rightBars)
rsiHigh = ta.pivothigh(rsiVal, leftBars, rightBars)
bullDivRSI = not na(rsiLow) and low < low and rsiVal > rsiVal
bearDivRSI = not na(rsiHigh) and high > high and rsiVal < rsiVal
macdLow = ta.pivotlow(macdLine, leftBars, rightBars)
macdHigh = ta.pivothigh(macdLine, leftBars, rightBars)
bullDivMACD = not na(macdLow) and low < low and macdLine > macdLine
bearDivMACD = not na(macdHigh) and high > high and macdLine < macdLine
tsiLow = ta.pivotlow(tsiVal, leftBars, rightBars)
tsiHigh = ta.pivothigh(tsiVal, leftBars, rightBars)
bullDivTSI = not na(tsiLow) and low < low and tsiVal > tsiVal
bearDivTSI = not na(tsiHigh) and high > high and tsiVal < tsiVal
// Plot divergence on chart
plotshape(bullDivRSI, style=shape.labelup, text="R d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivRSI, style=shape.labeldown, text="R d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
plotshape(bullDivMACD, style=shape.labelup, text="M d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivMACD, style=shape.labeldown, text="M d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
plotshape(bullDivTSI, style=shape.labelup, text="T d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivTSI, style=shape.labeldown, text="T d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
// Panel
var label panelLabel = label.new(bar_index + panelX, close, "", xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_left, color=panelBgColor, size=panelTextSize)
if showPanel
label.set_xy(panelLabel, bar_index + panelX, close + panelY * syminfo.mintick)
label.set_text(panelLabel, "MACD: " + (macdBull ? "↑" : "↓") + (bullDivMACD ? " d+" : bearDivMACD ? " d-" : "") + "\n" +
"RSI : " + (rsiBull ? "↑" : "↓") + (bullDivRSI ? " d+" : bearDivRSI ? " d-" : "") + "\n" +
"TSI : " + (tsiBull ? "↑" : "↓") + (bullDivTSI ? " d+" : bearDivTSI ? " d-" : "") + "\n" +
"ST : " + (trendLTF==1 ? "↑" : "↓"))
label.set_textcolor(panelLabel, color.white)
// ====================
// === CODE BLOCK 2: FluidTrades - SMC Lite (Light) ===
// ====================
// === SETTINGS ===
swing_length = input.int(10, "Swing High/Low Length", minval=1, maxval=50)
history_keep = input.int(20, "History To Keep", minval=5, maxval=50)
box_width = input.float(2.5, "Supply/Demand Box Width", minval=1, maxval=10, step=0.5)
show_labels = input.bool(false, "Show Price Action Labels")
supply_color = input.color(color.new(#EDEDED,70), "Supply Color")
supply_outline = input.color(color.new(color.white,75), "Supply Outline")
demand_color = input.color(color.new(#00FFFF,70), "Demand Color")
demand_outline = input.color(color.new(color.white,75), "Demand Outline")
bos_color = input.color(color.white, "BOS Label Color")
poi_color = input.color(color.white, "POI Label Color")
label_color = input.color(color.black, "Swing Label Color")
// === FUNCTIONS ===
f_add_pop(arr, val) =>
array.unshift(arr, val)
array.pop(arr)
f_draw_swing_label(values, swing_type) =>
var string txt = na
if swing_type == 1
txt := array.get(values,0) >= array.get(values,1) ? "HH" : "LH"
label.new(bar_index - swing_length, array.get(values,0), txt, style=label.style_label_down, textcolor=label_color, color=color.new(label_color,100), size=size.tiny)
else
txt := array.get(values,0) >= array.get(values,1) ? "HL" : "LL"
label.new(bar_index - swing_length, array.get(values,0), txt, style=label.style_label_up, textcolor=label_color, color=color.new(label_color,100), size=size.tiny)
f_check_overlap(new_poi, box_arr, atr) =>
ok = true
for i=0 to array.size(box_arr)-1
b = array.get(box_arr,i)
top = box.get_top(b)
bot = box.get_bottom(b)
mid = (top+bot)/2
threshold = atr*2
if new_poi >= mid - threshold and new_poi <= mid + threshold
ok := false
break
ok
f_create_box(vals, bn_arr, box_arr, label_arr, type_box, atr) =>
atr_buf = atr*(box_width/10)
left = array.get(bn_arr,0)
right = bar_index
var float top=0.0
var float bottom=0.0
var float poi=0.0
if type_box==1
top := array.get(vals,0)
bottom := top - atr_buf
else
bottom := array.get(vals,0)
top := bottom + atr_buf
poi := (top+bottom)/2
if f_check_overlap(poi, box_arr, atr)
box.delete(array.get(box_arr,array.size(box_arr)-1))
f_add_pop(box_arr, box.new(left, top, right, bottom, border_color=type_box==1?supply_outline:demand_outline,
bgcolor=type_box==1?supply_color:demand_color, extend=extend.right, text=type_box==1?"SUPPLY":"DEMAND",
text_halign=text.align_center, text_valign=text.align_center, text_color=poi_color, text_size=size.small, xloc=xloc.bar_index))
box.delete(array.get(label_arr,array.size(label_arr)-1))
f_add_pop(label_arr, box.new(left, poi, right, poi, border_color=color.new(poi_color,90),
bgcolor=color.new(poi_color,90), extend=extend.right, text="POI", text_halign=text.align_left, text_valign=text.align_center, text_color=poi_color, text_size=size.small, xloc=xloc.bar_index))
f_to_bos(box_arr, bos_arr, label_arr, type_box) =>
for i=0 to array.size(box_arr)-1
b = array.get(box_arr,i)
lvl = type_box==1? box.get_top(b) : box.get_bottom(b)
cond = type_box==1? close>=lvl : close<=lvl
if cond
cbox = box.copy(b)
f_add_pop(bos_arr, cbox)
mid = (box.get_top(b)+box.get_bottom(b))/2
box.set_top(cbox, mid)
box.set_bottom(cbox, mid)
box.set_extend(cbox, extend.none)
box.set_right(cbox, bar_index)
box.set_text(cbox, "BOS")
box.set_text_color(cbox, bos_color)
box.set_text_size(cbox, size.small)
box.set_text_halign(cbox, text.align_center)
box.set_text_valign(cbox, text.align_center)
box.delete(b)
box.delete(array.get(label_arr,i))
f_extend(box_arr) =>
for i=0 to array.size(box_arr)-1
box.set_right(array.get(box_arr,i), bar_index+100)
// === CALCULATIONS ===
atr = ta.atr(50)
swing_high = ta.pivothigh(high, swing_length, swing_length)
swing_low = ta.pivotlow(low, swing_length, swing_length)
var swing_high_vals = array.new_float(5,0.0)
var swing_low_vals = array.new_float(5,0.0)
var swing_high_bn = array.new_int(5,0)
var swing_low_bn = array.new_int(5,0)
var supply_boxes = array.new_box(history_keep, na)
var demand_boxes = array.new_box(history_keep, na)
var supply_poi = array.new_box(history_keep, na)
var demand_poi = array.new_box(history_keep, na)
var bos_supply = array.new_box(5, na)
var bos_demand = array.new_box(5, na)
// NEW SWING HIGH
if not na(swing_high)
f_add_pop(swing_high_vals, swing_high)
f_add_pop(swing_high_bn, bar_index )
if show_labels
f_draw_swing_label(swing_high_vals,1)
f_create_box(swing_high_vals, swing_high_bn, supply_boxes, supply_poi, 1, atr)
// NEW SWING LOW
if not na(swing_low)
f_add_pop(swing_low_vals, swing_low)
f_add_pop(swing_low_bn, bar_index )
if show_labels
f_draw_swing_label(swing_low_vals,-1)
f_create_box(swing_low_vals, swing_low_bn, demand_boxes, demand_poi, -1, atr)
f_to_bos(supply_boxes, bos_supply, supply_poi, 1)
f_to_bos(demand_boxes, bos_demand, demand_poi, -1)
f_extend(supply_boxes)
f_extend(demand_boxes)
//@version=6
length = input.int(9, minval=1)
src = input(close, title="Source")
e1 = ta.ema(src, length)
e2 = ta.ema(e1, length)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=#43A047)
Ichimoku + SuperTrend + Oscillator + Divergence + SMC Lite//@version=5
indicator("Ichimoku + SuperTrend + Oscillator + Divergence + SMC Lite", overlay=true, max_labels_count=500, max_lines_count=500, max_boxes_count=500, max_bars_back=1000)
// ====================
// === CODE BLOCK 1: Ichimoku + SuperTrend + Oscillator Monitor + Divergence ===
// ====================
// --- User Inputs ---
lowerTF = input.timeframe("5", "Lower Timeframe (Ichimoku + SuperTrend)")
higherTF = input.timeframe("60", "Higher Timeframe (Tenkan/Kijun check)")
tenkanLength = input.int(9, "Tenkan-sen Length (Lower TF)")
kijunLength = input.int(26, "Kijun-sen Length (Lower TF)")
senkouSpanBLength = input.int(52, "Senkou Span B Length (Lower TF)")
displacement = input.int(26, "Displacement (Lower TF)")
showCloud = input.bool(true, "Show Kumo Cloud (Lower TF)")
buyColor = input.color(color.new(color.green, 0), "Buy Candle Color")
sellColor = input.color(color.new(color.red, 0), "Sell Candle Color")
crossCandleColor = input.color(color.new(color.yellow, 0), "Cross Candle Color")
bodyFilterColor = input.color(color.new(color.lime,0), "Body Filter Active Color")
htfCrossColor = input.color(color.new(color.orange,0), "HTF Cross Signal Color")
stopColor = input.color(color.new(color.red,0), "Stop Line Color")
targetColor = input.color(color.new(color.blue,0), "Target Line Color")
cooldownBars = input.int(5, "Cooldown Bars After Signal")
// --- Higher TF Ichimoku ---
tenkanLengthHTF = input.int(36, "Tenkan Length (Higher TF)")
kijunLengthHTF = input.int(103, "Kijun Length (Higher TF)")
showTenkanHTF = input.bool(true, "Show Tenkan (HTF)")
showKijunHTF = input.bool(true, "Show Kijun (HTF)")
tenkanHTFValue = request.security(syminfo.tickerid, higherTF, (ta.highest(high, tenkanLengthHTF)+ta.lowest(low, tenkanLengthHTF))/2)
kijunHTFValue = request.security(syminfo.tickerid, higherTF, (ta.highest(high, kijunLengthHTF)+ta.lowest(low, kijunLengthHTF))/2)
plot(showTenkanHTF ? tenkanHTFValue : na, color=color.blue, linewidth=2, title="Tenkan HTF")
plot(showKijunHTF ? kijunHTFValue : na, color=color.red, linewidth=2, title="Kijun HTF")
// --- Lower TF Ichimoku ---
tenkan = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, tenkanLength) + ta.lowest(low, tenkanLength)) / 2)
kijun = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, kijunLength) + ta.lowest(low, kijunLength)) / 2)
senkouA = request.security(syminfo.tickerid, lowerTF, (tenkan + kijun) / 2)
senkouB = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, senkouSpanBLength) + ta.lowest(low, senkouSpanBLength)) / 2)
plot(tenkan, color=color.blue, title="Tenkan-sen (LTF)", linewidth=2)
plot(kijun, color=color.red, title="Kijun-sen (LTF)", linewidth=2)
sA = plot(senkouA , display=display.none)
sB = plot(senkouB , display=display.none)
cloudColor = showCloud ? (senkouA > senkouB ? color.new(color.green, 80) : color.new(color.red, 80)) : na
fill(sA, sB, color=cloudColor)
// --- Detect Crosses ---
crossUp = ta.crossover(tenkan, kijun)
crossDown = ta.crossunder(tenkan, kijun)
crossUpHTF = ta.crossover(tenkanHTFValue, kijunHTFValue)
crossDownHTF = ta.crossunder(tenkanHTFValue, kijunHTFValue)
candle2AboveCloud = close > math.max(senkouA , senkouB )
candle2BelowCloud = close < math.min(senkouA , senkouB )
// --- SuperTrend Lower TF ---
atrPeriodLTF = 12
multiplierLTF = 3.0
atrValueLTF = ta.atr(atrPeriodLTF)
upLTF = hl2 - multiplierLTF * atrValueLTF
dnLTF = hl2 + multiplierLTF * atrValueLTF
var int trendLTF = 1
trendLTF := trendLTF == -1 and close > dnLTF ? 1 : trendLTF == 1 and close < upLTF ? -1 : trendLTF
// --- SuperTrend Higher TF ---
useHTFST = input.bool(true, "Use HTF SuperTrend")
atrPeriodHTF = input.int(12, "HTF SuperTrend ATR")
multiplierHTF = input.float(3.0, "HTF SuperTrend Multiplier")
hl2HTF = request.security(syminfo.tickerid, higherTF, hl2)
atrHTF = request.security(syminfo.tickerid, higherTF, ta.atr(atrPeriodHTF))
upHTF = hl2HTF - multiplierHTF * atrHTF
dnHTF = hl2HTF + multiplierHTF * atrHTF
var int trendHTF = 1
trendHTF := trendHTF == -1 and close > dnHTF ? 1 : trendHTF == 1 and close < upHTF ? -1 : trendHTF
// --- Body Filter ---
useBodyFilter = input.bool(true, "Use Body Filter")
bodyMinPerc = input.float(20, "Min Body %")
bodyMaxPerc = input.float(100, "Max Body %")
bodyLen = math.abs(close - open)
candleLen = high - low
bodyPerc = (bodyLen / candleLen) * 100
bodyFilterPass = not useBodyFilter or (bodyPerc >= bodyMinPerc and bodyPerc <= bodyMaxPerc)
// --- Reward Filter ---
useReward = input.bool(true, "Use Reward 1:1 Filter")
stopLossPerc = input.float(1.5, "Stop Loss %")
reward1 = input.float(1.0, "Target 1 R/R")
reward2 = input.float(2.0, "Target 2 R/R")
reward3 = input.float(3.0, "Target 3 R/R")
rewardPass = not useReward or ((math.abs(close - tenkanHTFValue) * reward1) <= math.abs(kijunHTFValue - close))
// --- TSI Higher TF ---
tsiLong = input.int(25, "TSI Long")
tsiShort = input.int(13, "TSI Short")
tsiHTF = ta.tsi(request.security(syminfo.tickerid, higherTF, close), tsiLong, tsiShort)
// --- Lower TF Signals ---
buySignalLTF = (crossUp and candle2AboveCloud) and trendLTF == 1
sellSignalLTF = (crossDown and candle2BelowCloud) and trendLTF == -1
plotshape(crossUpHTF, title="HTF Buy Cross", location=location.belowbar, color=htfCrossColor, style=shape.triangleup, size=size.small)
plotshape(crossDownHTF, title="HTF Sell Cross", location=location.abovebar, color=htfCrossColor, style=shape.triangledown, size=size.small)
buyConfirmedRaw = (buySignalLTF and close > tenkanHTFValue and (not useHTFST or trendHTF==1)) and rewardPass and (tsiHTF > 0)
sellConfirmedRaw = (sellSignalLTF and close < tenkanHTFValue and (not useHTFST or trendHTF==-1)) and rewardPass and (tsiHTF < 0)
// --- Cooldown ---
var int barsSinceSignal = cooldownBars
barsSinceSignal += 1
buyConfirmed = buyConfirmedRaw and barsSinceSignal >= cooldownBars
sellConfirmed = sellConfirmedRaw and barsSinceSignal >= cooldownBars
if buyConfirmed or sellConfirmed
barsSinceSignal := 0
// --- Plot Final Signals ---
plotshape(buyConfirmed and bodyFilterPass, title="Buy Signal", location=location.belowbar, color=buyColor, style=shape.triangleup, size=size.small)
plotshape(sellConfirmed and bodyFilterPass, title="Sell Signal", location=location.abovebar, color=sellColor, style=shape.triangledown, size=size.small)
plotshape(buyConfirmed and not bodyFilterPass, title="Buy Signal (Filtered)", location=location.belowbar, color=bodyFilterColor, style=shape.triangleup, size=size.tiny)
plotshape(sellConfirmed and not bodyFilterPass, title="Sell Signal (Filtered)", location=location.abovebar, color=bodyFilterColor, style=shape.triangledown, size=size.tiny)
barcolor(crossUp or crossDown ? crossCandleColor : na)
barcolor(buyConfirmed and bodyFilterPass ? buyColor : sellConfirmed and bodyFilterPass ? sellColor : na)
// --- Stop & Targets ---
var float lastBuyPrice = na
var float lastSellPrice = na
var bool buyActive = false
var bool sellActive = false
f_drawLine(_price) =>
line.new(bar_index, _price, bar_index+3, _price, color=targetColor, width=2, style=line.style_dotted)
if buyConfirmed and not buyActive and not sellActive
buyActive := true
lastBuyPrice := close
line.new(bar_index, close*(1-stopLossPerc/100), bar_index+3, close*(1-stopLossPerc/100), color=stopColor, width=2, style=line.style_dotted)
f_drawLine(close*(1+reward1/100))
f_drawLine(close*(1+reward2/100))
f_drawLine(close*(1+reward3/100))
if buyActive
if low <= lastBuyPrice*(1-stopLossPerc/100) or high >= lastBuyPrice*(1+reward1/100)
buyActive := false
if sellConfirmed and not sellActive and not buyActive
sellActive := true
lastSellPrice := close
line.new(bar_index, close*(1+stopLossPerc/100), bar_index+3, close*(1+stopLossPerc/100), color=stopColor, width=2, style=line.style_dotted)
f_drawLine(close*(1-reward1/100))
f_drawLine(close*(1-reward2/100))
f_drawLine(close*(1-reward3/100))
if sellActive
if high >= lastSellPrice*(1+stopLossPerc/100) or low <= lastSellPrice*(1-reward1/100)
sellActive := false
// --- Oscillator Panel ---
showPanel = input.bool(true, "Show Oscillator Panel")
panelX = input.int(20, "Panel X Offset (Bars)")
panelY = input.int(50, "Panel Y Offset (Pixels)")
panelBgColor = input.color(color.new(color.black, 85), "Panel Background Color")
panelTextSize = input.string("normal", "Text Size", options= )
// MACD
macdFast = input.int(12)
macdSlow = input.int(26)
macdSignal= input.int(9)
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdBull = macdLine > signalLine
// RSI
rsiLen = input.int(14)
rsiVal = ta.rsi(close, rsiLen)
rsiBull = rsiVal > 50
// TSI
tsiVal = ta.tsi(close, 25, 13)
tsiBull = tsiVal > 0
// Divergence detection (RSI, MACD, TSI)
leftBars = input.int(2)
rightBars = input.int(2)
rsiLow = ta.pivotlow(rsiVal, leftBars, rightBars)
rsiHigh = ta.pivothigh(rsiVal, leftBars, rightBars)
bullDivRSI = not na(rsiLow) and low < low and rsiVal > rsiVal
bearDivRSI = not na(rsiHigh) and high > high and rsiVal < rsiVal
macdLow = ta.pivotlow(macdLine, leftBars, rightBars)
macdHigh = ta.pivothigh(macdLine, leftBars, rightBars)
bullDivMACD = not na(macdLow) and low < low and macdLine > macdLine
bearDivMACD = not na(macdHigh) and high > high and macdLine < macdLine
tsiLow = ta.pivotlow(tsiVal, leftBars, rightBars)
tsiHigh = ta.pivothigh(tsiVal, leftBars, rightBars)
bullDivTSI = not na(tsiLow) and low < low and tsiVal > tsiVal
bearDivTSI = not na(tsiHigh) and high > high and tsiVal < tsiVal
// Plot divergence on chart
plotshape(bullDivRSI, style=shape.labelup, text="R d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivRSI, style=shape.labeldown, text="R d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
plotshape(bullDivMACD, style=shape.labelup, text="M d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivMACD, style=shape.labeldown, text="M d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
plotshape(bullDivTSI, style=shape.labelup, text="T d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivTSI, style=shape.labeldown, text="T d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
// Panel
var label panelLabel = label.new(bar_index + panelX, close, "", xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_left, color=panelBgColor, size=panelTextSize)
if showPanel
label.set_xy(panelLabel, bar_index + panelX, close + panelY * syminfo.mintick)
label.set_text(panelLabel, "MACD: " + (macdBull ? "↑" : "↓") + (bullDivMACD ? " d+" : bearDivMACD ? " d-" : "") + "\n" +
"RSI : " + (rsiBull ? "↑" : "↓") + (bullDivRSI ? " d+" : bearDivRSI ? " d-" : "") + "\n" +
"TSI : " + (tsiBull ? "↑" : "↓") + (bullDivTSI ? " d+" : bearDivTSI ? " d-" : "") + "\n" +
"ST : " + (trendLTF==1 ? "↑" : "↓"))
label.set_textcolor(panelLabel, color.white)
// ====================
// === CODE BLOCK 2: FluidTrades - SMC Lite (Light) ===
// ====================
// === SETTINGS ===
swing_length = input.int(10, "Swing High/Low Length", minval=1, maxval=50)
history_keep = input.int(20, "History To Keep", minval=5, maxval=50)
box_width = input.float(2.5, "Supply/Demand Box Width", minval=1, maxval=10, step=0.5)
show_labels = input.bool(false, "Show Price Action Labels")
supply_color = input.color(color.new(#EDEDED,70), "Supply Color")
supply_outline = input.color(color.new(color.white,75), "Supply Outline")
demand_color = input.color(color.new(#00FFFF,70), "Demand Color")
demand_outline = input.color(color.new(color.white,75), "Demand Outline")
bos_color = input.color(color.white, "BOS Label Color")
poi_color = input.color(color.white, "POI Label Color")
label_color = input.color(color.black, "Swing Label Color")
// === FUNCTIONS ===
f_add_pop(arr, val) =>
array.unshift(arr, val)
array.pop(arr)
f_draw_swing_label(values, swing_type) =>
var string txt = na
if swing_type == 1
txt := array.get(values,0) >= array.get(values,1) ? "HH" : "LH"
label.new(bar_index - swing_length, array.get(values,0), txt, style=label.style_label_down, textcolor=label_color, color=color.new(label_color,100), size=size.tiny)
else
txt := array.get(values,0) >= array.get(values,1) ? "HL" : "LL"
label.new(bar_index - swing_length, array.get(values,0), txt, style=label.style_label_up, textcolor=label_color, color=color.new(label_color,100), size=size.tiny)
f_check_overlap(new_poi, box_arr, atr) =>
ok = true
for i=0 to array.size(box_arr)-1
b = array.get(box_arr,i)
top = box.get_top(b)
bot = box.get_bottom(b)
mid = (top+bot)/2
threshold = atr*2
if new_poi >= mid - threshold and new_poi <= mid + threshold
ok := false
break
ok
f_create_box(vals, bn_arr, box_arr, label_arr, type_box, atr) =>
atr_buf = atr*(box_width/10)
left = array.get(bn_arr,0)
right = bar_index
var float top=0.0
var float bottom=0.0
var float poi=0.0
if type_box==1
top := array.get(vals,0)
bottom := top - atr_buf
else
bottom := array.get(vals,0)
top := bottom + atr_buf
poi := (top+bottom)/2
if f_check_overlap(poi, box_arr, atr)
box.delete(array.get(box_arr,array.size(box_arr)-1))
f_add_pop(box_arr, box.new(left, top, right, bottom, border_color=type_box==1?supply_outline:demand_outline,
bgcolor=type_box==1?supply_color:demand_color, extend=extend.right, text=type_box==1?"SUPPLY":"DEMAND",
text_halign=text.align_center, text_valign=text.align_center, text_color=poi_color, text_size=size.small, xloc=xloc.bar_index))
box.delete(array.get(label_arr,array.size(label_arr)-1))
f_add_pop(label_arr, box.new(left, poi, right, poi, border_color=color.new(poi_color,90),
bgcolor=color.new(poi_color,90), extend=extend.right, text="POI", text_halign=text.align_left, text_valign=text.align_center, text_color=poi_color, text_size=size.small, xloc=xloc.bar_index))
f_to_bos(box_arr, bos_arr, label_arr, type_box) =>
for i=0 to array.size(box_arr)-1
b = array.get(box_arr,i)
lvl = type_box==1? box.get_top(b) : box.get_bottom(b)
cond = type_box==1? close>=lvl : close<=lvl
if cond
cbox = box.copy(b)
f_add_pop(bos_arr, cbox)
mid = (box.get_top(b)+box.get_bottom(b))/2
box.set_top(cbox, mid)
box.set_bottom(cbox, mid)
box.set_extend(cbox, extend.none)
box.set_right(cbox, bar_index)
box.set_text(cbox, "BOS")
box.set_text_color(cbox, bos_color)
box.set_text_size(cbox, size.small)
box.set_text_halign(cbox, text.align_center)
box.set_text_valign(cbox, text.align_center)
box.delete(b)
box.delete(array.get(label_arr,i))
f_extend(box_arr) =>
for i=0 to array.size(box_arr)-1
box.set_right(array.get(box_arr,i), bar_index+100)
// === CALCULATIONS ===
atr = ta.atr(50)
swing_high = ta.pivothigh(high, swing_length, swing_length)
swing_low = ta.pivotlow(low, swing_length, swing_length)
var swing_high_vals = array.new_float(5,0.0)
var swing_low_vals = array.new_float(5,0.0)
var swing_high_bn = array.new_int(5,0)
var swing_low_bn = array.new_int(5,0)
var supply_boxes = array.new_box(history_keep, na)
var demand_boxes = array.new_box(history_keep, na)
var supply_poi = array.new_box(history_keep, na)
var demand_poi = array.new_box(history_keep, na)
var bos_supply = array.new_box(5, na)
var bos_demand = array.new_box(5, na)
// NEW SWING HIGH
if not na(swing_high)
f_add_pop(swing_high_vals, swing_high)
f_add_pop(swing_high_bn, bar_index )
if show_labels
f_draw_swing_label(swing_high_vals,1)
f_create_box(swing_high_vals, swing_high_bn, supply_boxes, supply_poi, 1, atr)
// NEW SWING LOW
if not na(swing_low)
f_add_pop(swing_low_vals, swing_low)
f_add_pop(swing_low_bn, bar_index )
if show_labels
f_draw_swing_label(swing_low_vals,-1)
f_create_box(swing_low_vals, swing_low_bn, demand_boxes, demand_poi, -1, atr)
f_to_bos(supply_boxes, bos_supply, supply_poi, 1)
f_to_bos(demand_boxes, bos_demand, demand_poi, -1)
f_extend(supply_boxes)
f_extend(demand_boxes)
//@version=6
length = input.int(9, minval=1)
src = input(close, title="Source")
e1 = ta.ema(src, length)
e2 = ta.ema(e1, length)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=#43A047)
Ichimoku CloudStandard Ichimoku Cloud Implementation
The official Ichimoku Cloud indicator on TradingView applies an offset value of 1 to several lines, which deviates from Hosoda's original Ichimoku theory. This script rectifies that discrepancy, providing a more accurate representation of the Ichimoku Cloud.
Ichimoku Cloud Auto TF🧠 Timeframe Breakdown for Ichimoku Cloud Auto TF
Each timeframe in this indicator is carefully calibrated to reflect meaningful Ichimoku behavior relative to its scale. Here's how each one is structured and what it's best used for:
⏱️ 1 Minute (1m)
Tenkan / Kijun / Span B: 5 / 15 / 45
Use: Scalping fast price action.
Logic: Quick reaction to short-term momentum. Best for highly active traders or bots.
⏱️ 2 Minutes (2m)
Tenkan / Kijun / Span B: 6 / 18 / 54
Use: Slightly smoother than 1m, still ideal for scalping with a little more stability.
⏱️ 5 Minutes (5m)
Tenkan / Kijun / Span B: 8 / 24 / 72
Use: Intraday setups, quick trend capture.
Logic: Balanced between reactivity and noise reduction.
⏱️ 15 Minutes (15m)
Tenkan / Kijun / Span B: 9 / 27 / 81
Use: Short-term swing and intraday entries with higher reliability.
⏱️ 30 Minutes (30m)
Tenkan / Kijun / Span B: 10 / 30 / 90
Use: Intra-swing entries or confirmation of 5m/15m signals.
🕐 1 Hour (1H)
Tenkan / Kijun / Span B: 12 / 36 / 108
Use: Ideal for swing trading setups.
Logic: Anchored to Daily reference (1H × 24 ≈ 1D).
🕐 2 Hours (2H)
Tenkan / Kijun / Span B: 14 / 42 / 126
Use: High-precision swing setups with better context.
🕒 3 Hours (3H)
Tenkan / Kijun / Span B: 15 / 45 / 135
Use: Great compromise between short and mid-term vision.
🕓 4 Hours (4H)
Tenkan / Kijun / Span B: 18 / 52 / 156
Use: Position traders & intraday swing confirmation.
Logic: Designed to echo the structure of 1D Ichimoku but on smaller scale.
📅 1 Day (1D)
Tenkan / Kijun / Span B: 9 / 26 / 52
Use: Classic Ichimoku settings.
Logic: Standard used globally for technical analysis. Suitable for swing and position trading.
📆 1 Week (1W)
Tenkan / Kijun / Span B: 12 / 24 / 120
Use: Long-term position trading & institutional swing confirmation.
Logic: Expanded ratios for broader perspective and noise filtering.
🗓️ 1 Month (1M)
Tenkan / Kijun / Span B: 6 / 12 / 24
Use: Macro-level trend visualization and investment planning.
Logic: Condensed but stable structure to handle longer data cycles.
📌 Summary
This indicator adapts Ichimoku settings dynamically to your chart's timeframe, maintaining logical ratios between Tenkan, Kijun, and Span B. This ensures each timeframe remains responsive yet meaningful for its respective market context.
Ichimoku MTF (best MTF 4H - Entry 15M)The Ichimoku Cloud is a collection of technical indicators that show support and resistance levels, as well as momentum and trend direction. It does this by taking multiple averages and plotting them on a chart. It also uses these figures to compute a “cloud” that attempts to forecast where the price may find support or resistance in the future.
The technical indicator shows relevant information at a glance by using averages.
The overall trend is up when the price is above the cloud, down when the price is below the cloud, and trendless or transitioning when the price is in the cloud.
Charles G. Koonitz. “Ichimoku Analysis & Strategies: The Visual Guide to Spot the Trends in Stock Market, Cryptocurrency and Forex Using Technical Analysis and Cloud Charts," Tripod Solutions Inc., 2019.
When Leading Span A is rising and above Leading Span B, this helps to confirm the uptrend and the space between the lines is typically colored green. When Leading Span A is falling and below Leading Span B, this helps confirm the downtrend. The space between the lines is typically colored red in this case.1
Traders will often use the Ichimoku Cloud as an area of support and resistance depending on the relative location of the price. The cloud provides support/resistance levels that can be projected into the future. This sets the Ichimoku Cloud apart from many other technical indicators that only provide support and resistance levels for the current date and time.
Traders should use the Ichimoku Cloud in conjunction with other technical indicators to maximize their risk-adjusted returns. For example, the indicator is often paired with the relative strength index (RSI), which can be used to confirm momentum in a certain direction. It’s also important to look at the bigger trends to see how the smaller trends fit within them. For example, during a very strong downtrend, the price may push into the cloud or slightly above it, temporarily, before falling again. Only focusing on the indicator would mean missing the bigger picture that the price was under strong longer-term selling pressure.
Crossovers are another way that the indicator can be used. Watch for the conversion line to move above the base line, especially when the price is above the cloud. This can be a powerful buy signal. One option is to hold the trade until the conversion line drops back below the base line. Any of the other lines could be used as exit points as well.
Ichimoku BalaIndicator Overview
The Ichimoku Bala indicator is a modification of the traditional Ichimoku Kinko Hyo indicator that aims to improve its effectiveness in identifying trend reversals and potential trading opportunities. It incorporates additional lines, such as the Senkou Span B--0 line, to provide more nuanced insights into price movements.
Input Parameters
The indicator has several input parameters that allow you to customize its appearance and behavior:
enableReplay: Whether to enable replay mode, which allows you to analyze historical data.
i_date: The date to start replaying historical data.
chiko2: The period for the Chikou Span 78 line.
TenkanShift: The offset for the Tenkan-Sen line.
KinjunShift: The offset for the Kinjun-Sen line.
KumoShift: The offset for the Kumo (Senkou Span A and Senkou Span B) lines.
ChikouSpanShift: The offset for the Chikou Span line.
TenkanPeriods: The period for the Tenkan-Sen line.
KinjunPeriods: The period for the Kinjun-Sen line.
SenkouSpanBPeriods: The period for the Senkou Span B line.
senkouSpanBPeriod: The period for the Senkou Span B--0 line.
AddbasePeriods1: The period for the Direction Line.
DirectionLineShift: The offset for the Direction Line.
AddbasePeriods2: The period for the Quality Line.
QualityLineShift: The offset for the Quality Line.
offset_colour_candle: The offset for coloring the previous candle before the flat start.
Indicator Calculations
The indicator calculates the following lines:
TenkanSen: A moving average of the highest and lowest prices over 9 periods.
KinjunSen: A moving average of the Tenkan-Sen line over 26 periods.
Senkou Span A: The average of the Tenkan-Sen and Kinjun-Sen lines shifted 26 periods forward.
Senkou Span B: The average of the highest and lowest prices over 52 periods shifted 26 periods forward.
Senkou Span B--0: The average of the highest and lowest prices over 52 periods.
It also determines the flatness of the Tenkan-Sen, Kinjun-Sen, and Senkou Span B lines and identifies the start of a flat period.
Indicator Visualizations
The indicator plots the following lines:
TenkanSen: A blue line.
KinjunSen: A red line.
Chikou Span: A green line shifted one period forward.
Senkou Span A: A green line.
Senkou Span B: A red line.
Senkou Span B--0: A gray line.
Direction Line: A blue line.
Quality Line: A red line.
It also colors the previous candle before the flat start according to the type of flat detected:
candleColor: Purple for a flat involving the Tenkan-Sen and Kinjun-Sen lines.
candleColor2: Yellow for a flat involving the Senkou Span B line.
candleColor3: Gray for a flat involving all three lines.
Modifications by Seyedbala
The provided code includes additional modifications by Seyedbala, including:
Adding a parameter offset_colour_candle to control the offset for coloring the previous candle before the flat start.
Modifying the color of the fill between the Tenkan-Sen and Kinjun-Sen lines to #23dde0 for flatStart and color.purple for all other cases.
Modifying the color of the fill between the Senkou Span B line and Kinjun-Sen lines to yellow for flatStart2 and color.yellow for all other cases.
Modifying the color of the fill between the Tenkan-Sen and Senkou Span B lines to gray for flatStart3 and color.gray for all other cases.
These modifications aim to enhance the visual representation of the flat areas and make it easier to identify the different types of flat patterns.
Overall, the Ichimoku Bala indicator is a valuable tool for analyzing price movements and identifying potential trading opportunities. Its modifications by Seyedbala further enhance its capabilities and provide more nuanced insights into market trends.
Ichimoku Cloud Middle LineMiddle Line Ichimoku cloud for my friend and me
The Ichimoku Cloud is a collection of technical indicators that show support and resistance levels, as well as momentum and trend direction. It does this by taking multiple averages and plotting them on a chart. It also uses these figures to compute a “cloud” that attempts to forecast where the price may find support or resistance in the future.
The Ichimoku Cloud was developed by Goichi Hosoda, a Japanese journalist, and published in the late 1960s.
1
It provides more data points than the standard candlestick chart. While it seems complicated at first glance, those familiar with how to read the charts often find it easy to understand with well-defined trading signals.
Ichimoku Analysis Tool by TheSocialCryptoClubName: Ichimoku Analysis Tool
Category: Indicator.
Timeframe: Any Timeframe
Description: Ichimoku Analysis Tool is an assistant for the trader to visualize the information that can be perceived at a glance from the Ichimoku Kinko Hyo indicator.
Suggested usage: Use on Daily to evaluate the general long term, short term and mid term situation.
Technical Details: Each cell of the table describes an element of the Ichimoku by simply assessing the direction of the lines - or whether they are flat - and how they are positioned with each other (e.g. Tenkan above or below the Kijun) and in general how long ago the last Kumo Twist was and the width in percent of the Kumo.
Credits:
- Some of the indications has been explained by Corrado Rondelli
- Table has been inspired by tanayroy's ICHIMOKU Trading beta
Ichimoku ForecastFor Ichimoku lovers
hope you like it
”Ichimoku Kinko Hyo” translates to “one glance equilibrium chart”. The Ichimoku Kinko Hyo indicator is a technical indicator used in the forex market and an exceptional system of analyzing and predicting, which combines several approaches to monitor price fluctuations and identify important support lines and major trends. One of the main advantages of the Ichimoku indicator for forex trading is that it provides a full-fledged chart analysis without additional indicators. With the help of signals, you can easily determine which trend the market is in.
Ichimoku kinko hyo-Full OptionMany Pro-Ichimoku traders insist that we should not change Ichimoku indicator!
However, I've redesigned Ichimoku for more study out of traditional form.
Ichimoku Cloud Score v1.0This script calculates a simple Ichimoku Score based on the signals documented here , with a few additions. Each of the score components can be individually weighted via the script inputs . The output is a plot of the normalized Ichimoku score, in the range of -100 to 100.
This script has been heavily modified from 'Ichimoku Cloud Signal Score v2.0.0 '. Credit to user 'dashed' for the initial implementation.
This has been modified with several refinements:
Clean/Organized Code
Simplified Inputs
Improved Style
Scores normalized to a range (-100, 100)
Bugfixes and Improvements
Script Inputs: i.imgur.com
Ichimoku cloud clustersThe intention of this script is to get a quick and redundant overview of Ichimoku clouds of relevant time frames to spot clusters as strong support and resistance levels.
The script displays the Ichimoku cloud of the current time frame and the clouds of the supported higher time frames. Clouds of lower time frames are not displayed.
Ichimoku Strategy with Buy and Sell ZonesIchimoku strategy with Buy and Sell Zones basicly using Ichimoku Cloud
Tenkan-sen (Conversion Line): (9-period high + 9-period low)/2
On a daily chart, this line is the midpoint of the 9-day high-low range, which is almost two weeks.
Kijun-sen (Base Line): (26-period high + 26-period low)/2
On a daily chart, this line is the midpoint of the 26-day high-low range, which is almost one month.
Senkou Span A (Leading Span A): (Conversion Line + Base Line)/2
This is the midpoint between the Conversion Line and the Base Line. The Leading Span A forms one of the two Cloud boundaries. It is referred to as “Leading” because it is plotted 26 periods in the future and forms the faster Cloud boundary.
Senkou Span B (Leading Span B): (52-period high + 52-period low)/2
On the daily chart, this line is the midpoint of the 52-day high-low range, which is a little less than 3 months. The default calculation setting is 52 periods, but it can be adjusted. This value is plotted 26 periods in the future and forms the slower Cloud boundary.
Chikou Span: Represents the closing price and is plotted 26 days back.
Kumo Cloud: Kumo cloud between Senkuo Span A and Senkou Span B lines. It can be green or red. Color can be change with the trend.
And, it has 2 zones includes Buy and Sell Zone
For Buy Zone Alert;
- Tenkansen (Conversion Line) should crossover Kijunsen (Base line) above the highest line of cloud
- Price should be above the highest line of cloud
- Chikouspan should be above the cloud
For Sell Zone Alert:
- Kijunsen (Base Line) should crossover Tenkansen (Conversion Line) below the lowest line of cloud
- Price should be below the lowest line of cloud
- Chikouspan should be below the cloud
The indicator has some of Simple Moving Averages and Exponentianl Moving Averages
It includes:
- SMA 50
- SMA 200
- EMA 21
- EMA 500
You have chance to show or hide everything from settings section.
If you hide everything you can only see Buy and Sell zones.
Ichimoku for Buy and Sell signalThis indicator coded base on Ichimoku source. Support signal for Buy and Sell signal. Only follow the color of Ichimoku and the signal buy and sell. Only use for Cryptocurrency Market
Ichimoku w/MTFcombines traditional Ichimoku Cloud analysis with multi-timeframe trend filtering to generate high-probability trade signals
Ichimoku SentinelThis version of the Ichimoku Cloud features an alarm system helping you to catch entry and exit points and get warnings when you have to act to secure your profit.
Only relevant alerts will be triggered. For instance, if you're in a uptrend there will be alerts only when the Price crosses down Tenkan, not when crossing up.
Also, the frequent Tenkan-Kijun-Price-crossovers which occur when the price is hovering in the cloud will also not trigger alerts.
There is a warning alert when the price is approaching the cloud which is an early sign that the end of the trend is near.
You can define this warning distance to the cloud in the settings.
Conditions for long entry are the traditional triple:
- Price and Chikou-Sen above Cloud
- Chikou-Sen above Price
- Tenkan-Sen above Kijun-Sen
For Short Entries accordingly.
For Exit alerts you can chose between these options:
a) Price crosses Kijun (default)
b) Tenkan crosses Kijun
c) Price crosses Tenkan
Barcoloring : Green candles when above cloud (considered an uptrend), red when below (downtrend) and orange when within the warning distance from the cloud (consolidation)