//@version=6
// =============================================================================
// TR Foreign Flow — histogram of daily change in foreign ownership ratio for
// a BIST stock. Positive bars = foreign buyers stepping in; negative = exit.
//
// Placeholders filled by the MCP at generation time:
// {{TICKER}} — equity code, e.g. "GARAN"
// {{FOREIGN_PCT_TS_JSON}} — JSON array of {date, pct_of_freefloat}
// {{ALERT_DROP_THRESHOLD}} — alert when daily ΔFO < -X (default 2.0)
// {{AS_OF_DATE}} — YYYY-MM-DD snapshot
// =============================================================================
indicator("TR Foreign Flow — {{TICKER}} ({{AS_OF_DATE}})", overlay = false)
alertDropThreshold = {{ALERT_DROP_THRESHOLD}}
// Snapshot series (parallel arrays loaded once on first bar).
var int[] foDates = array.new<int>(0)
var float[] foPcts = array.new<float>(0)
if barstate.isfirst
{{FOREIGN_FLOW_LOADER}}
// --- Per-bar: match this bar to the snapshot --------------------------------
getPctOnBar() =>
pct = na
if array.size(foDates) > 0
for i = 0 to array.size(foDates) - 1
ts = array.get(foDates, i)
if ts >= time and ts <= time_close
pct := array.get(foPcts, i)
break
pct
currentPct = getPctOnBar()
prevPct = currentPct[1]
deltaPct = nz(currentPct) - nz(prevPct)
plot(deltaPct, title = "ΔForeign %",
style = plot.style_columns,
color = deltaPct >= 0 ? color.new(color.teal, 20) : color.new(color.red, 20))
hline(0, "Zero", color = color.gray)
// --- Alert ------------------------------------------------------------------
alertcondition(deltaPct <= -alertDropThreshold,
title = "Foreign exit",
message = "{{TICKER}}: foreign ownership dropped > " +
str.tostring(alertDropThreshold) + "% in one session")
Overview
TR Foreign Flow loads a static snapshot of free-float ownership percentages, matches each bar to a snapshot date, and plots the difference from the previous matched value as teal columns when ownership rises and red columns when it falls. A zero line marks no change. An alert fires when the one-session drop is at or below a generation-time threshold. The series is fixed at script generation and is not a live feed.
Third-party code. ForexR did not write, test or endorse this script, and the summary above was generated automatically from its code and README. Indicators describe the past, and a strategy's backtest can look better than live trading, especially when a script repaints. Check it in the Strategy Tester and on a demo account before you rely on it.
Asymmetrical RSI is an indicator that computes a custom relative strength index from the rate of change of a user-selected source. It plots the resulting ARSI line in a separate pane with color coding that turns green above the overbought level and red below t
This indicator calculates momentum setups based on the Relative Strength Index (RSI) and plots in a separate pane. It offers multiple scanning modes such as Continuous Break, Continuous Retracement, Flip Break, Flip Retracement, and both regular and hidden div
Range Volume Change compares volume inside a chosen session window with the same window on the previous day and plots that change as a percentage. It accumulates volume during the window and, when enabled, volume outside it, drawing growing columns in a separa
This indicator calculates a modified MACD oscillator and signal line alongside a trend EMA filter, plotting the output as a stylized column histogram in a separate pane. Instead of plotting true MACD distance, it quantifies positive and negative histogram mome
This indicator plots the Average Directional Index in a separate pane and colors the line teal or maroon according to whether plus DI is above minus DI. A horizontal key level and a silver background mark periods when ADX exceeds that threshold. With labels en
The Mojito v3 Strategy indicator evaluates volatility term structure by calculating the ratio between front-month and second-month VIX futures contracts. It smooths this ratio using a configurable median filter and compares the result against user-defined uppe