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.
| Group | Series | New values arrive |
|---|---|---|
| Macro | VIX Volatility Index, US 10Y Yield | Daily |
| Macro | CPI, 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) |
| Fundamentals | P/E Ratio | Daily |
| Fundamentals | Total Revenue, Net Income, EBITDA, Gross Profit, Cash on Hand, Total Debt, Free Cash Flow | Quarterly, on the filing date |
| Fundamentals | EPS Actual, EPS Surprise % | On each earnings report |
| Sentiment | News Sentiment, a score from −1 to +1 | As each article is published |
| Corporate Actions | Dividend Value, the dividend per share | On 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.
| Series | A backtest reads it from (New York time) |
|---|---|
| VIX, US 10Y Yield | 5: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 Ratio | 5: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 figures | 5: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 Sentiment | The moment the article was published |
| Dividend Value | The 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
Outputs
Use something else when
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.