Data Source Node

The Data Source node brings data from outside the price feed into a strategy: the VIX, the 10-year yield, economic figures, company fundamentals, earnings, news sentiment and dividends. What each series is, how often it updates, the moment a backtest can read each value, and its five outputs.

NodeBy AlgoLiftUpdated 7 min read
On this page 9How it worksWhen a backtest can read each valueFive outputsExample: stand aside when the VIX is highSettingsOutputsUse something else whenWhen it doesn't behaveGoing further

Price isn't the only thing that moves markets. The Data Source node reads a series from outside the price feed (the VIX, the 10-year Treasury yield, a company's earnings or its news sentiment) and lines it up with your bars, so a rule can ask "is the VIX above 25?" the same way it asks about RSI.

Takes
Nothing. It reads the series you pick
Gives
The latest value, plus when it last changed and by how much
Reach for it
A rule depends on something outside the chart: volatility, rates, a company's numbers

How it works

You add one from External Data in the sidebar, which opens a library of every series by group. Pick one and it lands on the canvas as a Data Source node, titled with the series' name.

GroupSeriesNew values arrive
MacroVIX Volatility Index, US 10Y YieldDaily
MacroCPI, GDP Growth, Unemployment Rate, Real Interest Rate, each labelled "(annual, World Bank)"Once a year (all four are annual World Bank figures for the US)
FundamentalsP/E RatioDaily
FundamentalsTotal Revenue, Net Income, EBITDA, Gross Profit, Cash on Hand, Total Debt, Free Cash FlowQuarterly, on the filing date
FundamentalsEPS Actual, EPS Surprise %On each earnings report
SentimentNews Sentiment, a score from −1 to +1As each article is published
Corporate ActionsDividend Value, the dividend per shareOn each ex-dividend date

The macro series are market-wide: the same numbers whatever you trade, and the node says so ("Market-wide data"). Everything else belongs to a company, and the node reads it for the symbol of the series you choose on it, so company data needs a stock series (AAPL, MSFT or NVDA). ES and NQ are index futures, with no earnings or filings of their own: the node offers only your strategy's stock series, and a backtest that points company data at a futures series is refused by name before it runs (the figures are looked up by ticker, and ES is also a stock's ticker, Eversource's).

When a backtest can read each value

Each value applies from the moment it was public until the next one replaces it. The data stores most values under a date with no time of day, so every series has a rule that turns that date into a moment on the New York clock (Eastern time, daylight saving included). Where the exact moment isn't known, the rule takes the later one, so a value can reach a backtest late but never early.

SeriesA backtest reads it from (New York time)
VIX, US 10Y Yield5:00 PM on its date, after the close. Trading ES at 10:00, the VIX you read is the previous session's close
P/E Ratio5:30 PM on its date. The earnings and share count inside it are taken from the day each quarter was filed
Total Revenue, Net Income and the other filed figures5:30 PM on the SEC filing date. A row whose filing date is missing, or dated at or before the quarter's end, waits for the SEC deadline: 45 days after the quarter for a 10-Q, 90 days after the fiscal year for a 10-K
EPS Actual, EPS Surprise %9:30 AM on the report date for a before-market report, 4:05 PM for an after-market one. A report with no known time, or one dated at or before the quarter it reports, waits for the next session's 9:30 AM open
CPI (annual, World Bank)8:30 AM on the first CPI release of the next year (mid-January). Past the end of the release calendar the guide carries, 45 days after the year ends
Unemployment Rate (annual, World Bank)8:30 AM on the first jobs report of the next year (early January), with the same 45-day fallback
GDP Growth, Real Interest Rate (annual, World Bank)March 31 of the next year, after the third estimate of the fourth quarter
News SentimentThe moment the article was published
Dividend ValueThe evening before the ex-date (midnight UTC of the ex-date), weeks after the dividend was declared

The four annual series are the World Bank's figures for the year, which can differ from the numbers first published, so treat them as a slow backdrop rather than a release to trade.

Five outputs

Value is the latest value. The other four are about its updates: Is Updated is true on the first trade after a new value reaches the backtest, the two Change vs Prev outputs compare the latest value with the one before it, and Bars Since Update counts bars since Is Updated last fired (bars of the node's series; of your primary series for market-wide data). The backtest runs history a month at a time, so Bars Since Update has no value in a month until the first update arrives in it. The node starts with Value; add the others with the + on the node.

Example: stand aside when the VIX is high

You run a mean-reversion entry on ES 5m that's fine in normal markets and gets run over when fear spikes.

Open External Data, add the VIX Volatility Index, and wire its Value into a Comparison set to Less Than, against a Constant of 25. AND that with your signal through a Logic node and into the Entry. The entry now stands aside whenever the last VIX close was 25 or higher.

Settings

Source
The series it reads, chosen in the External Data library when you add the node.
Outputs
Default Value
Which outputs the node shows. Add one with + on the node, or switch one to another from its menu.
Series
Default Primary series
Company series only: whose data it reads. Market-wide series don't have one.

Outputs

Value
Number
The latest value of the series.
Is Updated
True or false
True on the first trade after a new value reaches the backtest, then false again. For a daily series, that's once a day.
Change vs Prev (Abs)
Number
The latest value minus the one before it, held until the next update.
Change vs Prev (%)
Number
The same change as a percentage of the previous value.
Bars Since Update
Number
Bars since Is Updated last fired: 0 during that bar, then counting up. It has no value in a month of the backtest until the first update arrives in it, so a comparison on it reads false until then.

Use something else when

You want to avoid FOMC, CPI or jobs-report days
A schedule, not a reading. Event Day knows the release dates, and the days before and after.
Volatility measured from the chart itself
ATR moves with every bar of the instrument you trade, instead of once a day.
ATR

When it doesn't behave

My “on update” rule never fires

Is Updated is true for one trade only. If that trade comes when your strategy can't enter (outside your trading hours, say), the moment is gone. Ask the question with Bars Since Update instead: less than 12, on 5-minute bars, means "within about the last hour".

The VIX looks a day behind

During the day session it is, on purpose: a day's VIX close reaches the backtest at 5:00 PM New York, after the close, so until then you're reading the previous session's close, which is what you'd have known at the time.

Bars Since Update is empty at the start of a month

The backtest runs history a month at a time, and a month can't see when the value it starts with arrived. So Bars Since Update has no value until the first update inside the month, and a rule on it reads false until then. On a series that changes rarely (a quarterly filing, an annual figure) ask with Is Updated, or compare the Value itself.

My backtest is refused: company data on a futures series

Company data reads a stock series only. Point the node at a stock series of the strategy (add one if it has none), or use a market-wide series.

The builder won't let me wire it into a Crossover

External data doesn't reach back before each month of history the engine runs, so a Crossover couldn't see where the series came from. The same goes for Since, Capture and the State Machine. Compare it with a Comparison, which is exact on every bar.

The entry funnel says it can't measure this condition

The Inspector's meters count bars on research data, which carries no external series, so they mark the condition Can't measure rather than guess. The backtest itself reads the series fine.

Going further

Company figures carry a date but often no time of day, so where the release time isn't known a backtest waits for the latest moment it could have been (the table above): an earnings report with no time reads from the next session's open, a filing from 5:30 PM. Use them for filters that hold for days or weeks ("only while the P/E is under 30"); a rule that trades the hours around a release is trading the latest possible moment, not the real one.

And go easy on tuning a threshold like VIX 25. The VIX can spend months on one side of a level, so a five-year backtest may hold only a handful of high-VIX stretches, and a sweep will happily find the number that dodged those particular ones. Count the episodes before you trust the filter.

Or ask the copilot