Data feeds, costs and setup
Lesson 26 · about 9 min
The platform draws the picture; the data feed supplies it. Order flow needs more from a feed than charting does, and the extra is where most of the cost lives. This lesson explains what you are paying for, gives an honest budget with illustrative numbers, and covers the setup details that make the difference between clean data and a misleading picture. Prices here are rough ranges for orientation only; check current figures with the exchange and vendor.
Levels of data
| Level | What it includes | Enough for |
|---|---|---|
| Level 1 (top of book) | Best bid, best ask, last trade with size | Candles, volume, most indicators |
| Level 1 with trade side | The above plus whether each trade hit the bid or lifted the ask | Footprint, delta, cumulative delta, volume profile |
| Level 2 / depth (market by price) | Resting size at each price level, typically 10 levels or more each side | DOM, Bookmap-style heatmaps, pulling and adding reads |
| Market by order (MBO) | Every individual order and its queue position | Detailed queue analysis; not needed for this course |
Most of this course needs the second row. Module 2 needs the third. The fourth is for specialists and is expensive.
What one second of each level looks like as data:
Level 1: 10:15:02.114 bid 5000.00 ask 5000.25 last 5000.25 x 3
Level 1 + side: 10:15:02.114 5000.25 x 3 @ASK <- footprint needs this
10:15:02.340 5000.00 x 2 @BID
Level 2 (depth): 10:15:02.114 bids: 5000.00 x 130 | 4999.75 x 210 | 4999.50 x 180 ...
asks: 5000.25 x 85 | 5000.50 x 120 | 5000.75 x 190 ...
Market by order: 10:15:02.114 order #83712 5000.00 x 10 queue position 4 of 41 ...
Each row down is a larger stream and a larger bill.
The trade-side classification is the critical piece. Exchange-direct futures feeds provide it reliably. Some consolidated stock feeds infer it. Some crypto exchange APIs provide it directly, others do not, and platforms then estimate it from the quote at the moment of the trade. Ask your vendor which you are getting.
Where the costs come from
Three separate bills, often bundled confusingly:
- Exchange fees. The exchange charges for its data, per exchange group, per month, with a large difference between "non-professional" and "professional" status. Depth costs more than top-of-book. For a US futures exchange group, a non-professional top-of-book subscription might be in the low tens of dollars per month, with depth adding a similar amount; check current schedules. Trading several exchange groups multiplies this.
- Feed provider fees. The company that delivers the data to your platform (examples of the type: Rithmic, CQG, the platform's own feed such as Sierra's Denali, or a broker's bundled feed) charges for the connection. Sometimes waived if you trade enough through a linked broker.
- Platform subscription. Covered in the last lesson.
Crypto is usually cheaper: exchange data is often free through public APIs, and the cost is the platform. Stocks are often the most expensive for depth, because consolidated depth across venues is a premium product.
An illustrative budget
Numbers are round and for orientation; treat them as placeholders to be replaced with current quotes.
| Item | Futures (one exchange group) | Crypto (one exchange) | Stocks (consolidated) |
|---|---|---|---|
| Exchange top-of-book with trade side | 15 | 0 | 10 |
| Exchange depth | 15 | 0 | 40 |
| Feed provider | 20 | 0 | 20 |
| Platform, cheapest true-footprint tier | 40 | 30 | 40 |
| Monthly total | 90 | 30 | 110 |
| Annual | 1,080 | 360 | 1,320 |
Now put that against a trading account. On a 10,000 account, 1,080 a year is 10.8% of the account before any trade is taken. Expressed in R at 1% risk per trade (100 per R), the futures setup costs about 10.8R per year, or roughly 0.9R per month. A trader whose log shows +0.3R expectancy per trade needs three winning-expectancy trades per month just to cover data. This is not an argument against paying for data; it is the number you should have written down before deciding.
Key idea: Data and platform costs are a fixed R-drag on the account. Compute them in R per month against your expectancy and account size before subscribing, and again before upgrading.
Setup details that matter
Session times. Profiles and cumulative delta reset at the session boundary you define. If your platform's session template does not match the exchange's actual trading hours for your product, your "session POC" is wrong. Set the template explicitly and check it against a known day.
Tick size and rounding. A footprint aggregated at the wrong tick size hides structure (too coarse) or fragments it (too fine). Use the product's native tick for the footprint and a coarser grouping for profiles on high-priced products, and keep the choice fixed.
Bar type. Decide the footprint bar type (time, volume, range, delta) and the parameter, and keep it for weeks. The worked sessions in Module 6 used fixed bars; a trader who changes bar type mid-week cannot compare one session's reads to another's.
Imbalance settings. Set the diagonal ratio (3:1 is a common start) and a minimum volume that is meaningful for your product, as in Module 3. Defaults are often set for a thick index future and are wrong for a thinner product.
Latency and hardware. Order flow is not high-frequency trading; a normal broadband connection and a mid-range computer are fine for reading. What does matter is not running the platform on a machine that also streams video, because dropped packets in a depth feed show up as phantom gaps in the DOM.
Replay data storage. Tick replay needs tick data stored locally, which can be several gigabytes per month per product. Check the platform's storage settings so old data is not silently pruned before you have reviewed it.
A minimal configuration
For a trader starting this course on a single futures product:
| Setting | Value | Why |
|---|---|---|
| Data | Exchange top-of-book with trade side; add depth after Module 2 exercises show you can read it | Cheapest path that supports Modules 3 to 6 |
| Footprint | Volume bars sized so that a typical active-hour bar lasts 2 to 5 minutes; native tick; bid × ask cells | Normalises for activity; Module 3 |
| Imbalance | 3:1, minimum equal to a "large" print for the product | Module 3, lesson 3 |
| Profile | Session profile with 70% value area; five-day composite | Module 4 |
| CVD | Reset at session open | Module 3, lesson 4 |
| DOM | Traded-at-price and traded-since-arrival columns visible | Module 2 |
| Replay | Tick level, stored for at least 30 days | Practice plan, next lesson |
Try it: Get a current quote for each row of the budget table for your product from the exchange's fee page, your feed provider and your platform. Total it, convert to R per month using your account size and risk per trade, and write the number next to your expectancy estimate from Module 6. If the data costs more R than you expect to make, that is the answer to whether to subscribe yet.
Recap
- Order flow needs a feed with trade side per print; the DOM needs depth; both cost more than plain charting data.
- Costs come from the exchange, the feed provider and the platform, and vary by market: futures moderate, crypto cheapest, stocks most expensive for depth.
- Convert the monthly total into R against your account and expectancy before subscribing.
- Session templates, tick size, bar type and imbalance settings must be set deliberately and kept fixed.
- Store tick data for replay; the practice plan depends on it.
See it drawn
Original diagrams for the ideas on this page. Illustrative, not real market data.