Derivatives, FX, commodities and crypto — course checkpoint
You began this course able to fetch a stock price. You finish able to read four data families whose shapes have almost nothing in common with an equity series — and, more importantly, able to spot which of your assumptions each one breaks.
Unit 1 — an option chain as data
A contract has four coordinates: underlying, expiry, strike and right. That is why one company becomes 14,394 rows in the specification's AAPL example, and why filters rather than pagination are the interface. The limit is arithmetic: page[offset] maxes at 10,000 and page[limit] at 1,000, so record 11,000 is the furthest you can address — below the size of a large chain. The contract name is itself a composite key: AAPL271217C00420000 decodes to AAPL, 2027-12-17, call, strike 420, and dte: 857 ties out to the day.
Quotes carry today; last may not. One row showed last: 245.9 set 65 days before its 2025-08-12 snapshot, against a midpoint of 220.3 — an 11.6% gap. Zeros in open, high, low and volume mean no trade, not a price of zero. And the greeks are published fields, not measurements: delta needs a spot, a rate, a dividend assumption, an exercise style and a volatility, none of which appear as columns. Solving the undocumented moneyness two ways gave 229.5 and 229.6, and that agreement is the proof.
Unit 2 — currencies have no home exchange
FOREX is a virtual exchange: a namespace, not a venue. It held 998 rows on 2026-07-28, all Type: "Currency", all Country: "Unknown", all Isin: null — a pair is not a security. Of those, 945 codes are six characters and 52 are three, and the short ones are USD-based inversions: EUR.FOREX at 0.8796 on 2026-07-27 was the reciprocal of EURUSD.FOREX at 1.1369 the same day, as both read on 2026-07-28. Every FX price is a ratio between two moving things, so the key is a pair, not an instrument.
volume is the integer 0 on every FX row, so volume > 0 deletes your universe without raising an error, and adjusted_close equals close because there is nothing to adjust. The daily close is a vendor cut-off, not an event. The calendar is per pair and can change: on 2026-07-28 EURUSD over 2026-07-10 to 2026-07-27 had Sundays and no Saturdays, with a Sunday stub of three pips against fifty on a weekday; by 28 September 2026 it had gained its Saturdays, while crosses such as EURGBP kept the six-day week.
Unit 3 — commodities and crypto
/commodities/historical/{code} returned a {meta, data, links} envelope with a single value per row, not the OHLCV array its own schema documents. meta.unit is what makes a series usable — Dollars per Barrel for WTI, U.S. Dollars per Metric Ton for COPPER, Index 2016 = 100 for ALL_COMMODITIES — and GOLD returned 404 despite being in the documentation, while gold exists under COMM as GC. A commodity number is ambiguous twice: which price (meta.name names a grade and a hub; rolled series contain steps that are not price moves) and which period (the annual row labelled 2008-01-01 read 44.60, December's value, against a twelve-month mean of 98.69).
Crypto lives on CC as BTC-USD.CC — hyphenated, where FX is concatenated and indices are bare. Over the same eighteen days crypto returned 18 rows, an FX cross such as EURGBP 15 and an equity 12, which is why annualising a 3% daily deviation gives 47.6% by √252 and 57.3% by √365. With no primary exchange and no official close, two providers disagree by construction — pick one method, record it, never average two aggregates.
Unit 4 — indices
INDX held 1,668 rows with bare codes (GSPC, DJI, VIX), and the trap worth remembering is that INDX is not in /exchanges-list — nor are BOND, EUBOND or COMM, all of which work. An index has a level and no trades: no bid, no ask, and a meaningless volume column. The CBOE list returned 123 entries whose newest date was 2025-09-22 — a historical registry, not a quote board.
The divisor is the whole formula: 4,276,250,432,997.92 ÷ 248,535,830.1502 = 17,205.77, matching the published Value of 17,205.7704. It absorbs every corporate action, which is why a past index level cannot be rebuilt from past prices alone. And today's constituent list contains only companies that survived and still qualify; HistoricalTickerComponents fixes it, with membership on date D meaning StartDate ≤ D and (EndDate empty or EndDate ≥ D).
The four sentences worth keeping
- The response is the authority, not the specification. Schemas drift, documented codes 404, metadata claims seven days where the data has six.
- A structurally empty column is more dangerous than a missing one.
volume: 0on FX,adjusted_close == closeon crypto,open: 0on an untraded option — each is a valid number that produces a wrong answer instead of an error. - Ask what the number measures before you ask what it says. Which grade at which hub, which venues at which cut-off, which period under which date label, whose model produced this delta.
- Any universe list is a snapshot with survivors in it, and the only honest correction is to run the same test twice and report the gap.
Before you sit it
Each of these is a minute at your desk. Any one that is not names the lesson to reopen first.
- Read an expiry, a strike and a type out of a contract symbol — What does AAPL271217C00420000 tell you before you fetch anything?
- Say which exchange EURUSD trades on — Which exchange does EURUSD trade on?
- Say what one commodity number actually measures — What exactly does one commodity number measure?
- Say why a backtest on today's index members flatters itself — Why does a backtest on today's index look so good?
Try it now
- For each of the four data families, name one column that exists but carries no information.
- Reproduce three numbers from this course yourself, a count, an identity and a calendar, from the three tables below, and record the date beside each title. Every figure in the summary above was checked on 2026-07-28 and every one can change: say whether any of your three no longer matches it.
Checkpoint quiz next, then the final course of this domain: news, sentiment, technical indicators, screening and search. Nothing here recommends any instrument, market or strategy — it describes how four families of data are shaped and which of them will mislead you if you read them as if they were shares of stock.