Expand description
US equity and ETF option prints and one-minute option candles from the London Strategic Edge vault.
let client = LseVaultClient::from_env()?;
let start = Utc.with_ymd_and_hms(2026, 9, 22, 15, 0, 0).unwrap();
let end = start + Duration::minutes(5);
let prints = client.fetch_option_flow(Some("SPY"), start, end);
futures::pin_mut!(prints);
while let Some(print) = prints.next().await {
let print = print?;
println!("{} {} x{} delta={:?}", print.contract.ticker, print.price, print.volume, print.greeks.delta);
}§⚠️ Licensing
Data retrieved here is not redistributable. See the module documentation and https://londonstrategicedge.com/terms.
§What this feed is — and is not
- Prints, not quotes. Every row is an executed option trade. There is no bid, ask or book
anywhere on these paths, so nothing here can build an
OrderBookL1. - ⚠️ Greeks are PRINT-TRIGGERED, not continuous. Each print carries the greeks the provider
computed at that print, and nothing publishes them in between. A contract’s greeks are
therefore only as fresh as its last trade, which on an illiquid strike can be weeks old — and
an unheld contract that never trades is never marked at all. This is a property of the source:
the provider’s chain snapshot endpoint, which would be the continuous alternative, serves
stale stored fields (expired contracts, a
dtethat disagrees with the expiry) and is deliberately not wrapped. Do not treat the latest print’s greeks as a current risk figure without checking its age. - Timestamps are batch stamps at whole-second granularity. Every print inside one second
carries a stamp within a few milliseconds of every other, so the sub-second part is not a
print time. Never order, de-duplicate or join on the timestamp alone; the provider’s print
idis the unique key. - Strikes are not always round. Contracts adjusted for a corporate action carry fractional
strikes (
2.67,9.85), so the strike is aDecimaland the contract’s identity is itsticker, not a strike rebuilt from integers. - ⚠️ A contract is read from its ticker, not from the row’s separate fields. The served
strikeis a float and has carried noise (504.99999999999994for a 505 strike), sokind,strikeandexpiryare all read exactly from the OSI ticker. A row whose ticker is not an OSI symbol is a decode error. - An unknown underlying or ticker is an empty result, not an error. The provider answers
200with no rows for a symbol it has never heard of, indistinguishable here from a quiet period. - Exercise style is not reported, so none is claimed: most listed US equity options are American, but index options are European, and guessing would be this library inventing a fact.
Structs§
- LseOption
Candle - One minute of trading in one option contract.
- LseOption
Contract - One option contract, as the provider identifies it.
- LseOption
Print - One executed option trade, with the greeks the provider computed at that print.
Constants§
- OPTION_
FLOW_ SETTLE_ MARGIN - How long after a moment the provider’s print tape can be relied on to be complete up to it.