All Greeks
Fetch all Greeks history for an option contract (intraday, sampled by interval).
- Returns the data for all contracts that share the same provided symbol and expiration.
- Calculated using the option and underlying midpoint price. If an interval size is specified (highly recommended), the option quote used in the calculation follows the same rules as the quote endpoint.
- The underlying price represents whatever the last underlying price was at the
timestampfield. You can read more about how Theta Data calculates greeks here. - Multi-day requests are limited to 1 month of data.
pub fn option_history_greeks_all(
&self,
symbol: &str,
expiration: &str,
date: &str,
) -> OptionHistoryGreeksAllBuilder<'_>Optional parameters chain on the builder: .strike(&str), .right(&str), .interval(&str), .start_time(&str), .end_time(&str), .annual_dividend(f64), .rate_type(&str), .rate_value(f64), .version(&str), .strike_range(i32), .start_date(&str), .end_date(&str). Execute with .await → Result<Vec<GreeksAllTick>, Error>, or decode chunk-by-chunk with .stream(handler).
Example
let rows = tdx
.option_history_greeks_all("SPY", "20250321", "20250303")
.strike("570")
.right("C")
.interval("1m")
.await?;
for t in &rows {
println!("date={} delta={} gamma={} theta={} implied_volatility={}", t.date, t.delta, t.gamma, t.theta, t.implied_volatility);
}Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
symbol | string | yes | — | Ticker symbol (e.g. AAPL) |
expiration | date | yes | — | Expiration date YYYYMMDD |
date | date | yes | — | Date YYYYMMDD |
strike | string | no | * | Strike price in dollars as a string (e.g. 500 or 17.5). Use * for wildcard selection. |
right | string | no | both | Option side. Accepted values: call, put, both. |
interval | string | no | 1s | Interval preset or millisecond string. Defaults to 1s when omitted — matching the upstream ThetaData Python library. Accepted values: tick, 10ms, 100ms, 500ms, 1s, 5s, 10s, 15s, 30s, 1m, 5m, 10m, 15m, 30m, 1h. |
start_time | string | no | 09:30:00 | Start time filter |
end_time | string | no | 16:00:00 | End time filter |
annual_dividend | float | no | — | Annualized expected dividend amount, in dollars per share, used in the Greeks calculation (e.g. 2.5 is $2.50 per share per year). |
rate_type | string | no | sofr | Risk-free-rate source used in the Greeks calculation. Accepted values: sofr, treasury_m1, treasury_m3, treasury_m6, treasury_y1, treasury_y2, treasury_y3, treasury_y5, treasury_y7, treasury_y10, treasury_y20, treasury_y30. |
rate_value | float | no | — | Interest rate as a percent (4.36 means 4.36%, matching the InterestRateTick.rate convention) used in the Greeks calculation. Applied when rate_type selects a manual rate. |
version | string | no | latest | Greeks model version. Accepted values: latest, 1. |
strike_range | int | no | — | Strike range filter |
start_date | date | no | — | Start date YYYYMMDD |
end_date | date | no | — | End date YYYYMMDD |
timeout_ms | int | no | — | Per-request deadline in milliseconds. 0 means no deadline. |
Response
Rows of GreeksAllTick:
| Field | Type | Description |
|---|---|---|
ms_of_day | i32 | Milliseconds since midnight Eastern Time. |
bid | f64 | Last NBBO bid price. |
ask | f64 | Last NBBO ask price. |
implied_volatility | f64 | Implied volatility solved from the option price. |
delta | f64 | Sensitivity of the option value to a one-dollar move in the underlying. |
gamma | f64 | Rate of change of delta with respect to the underlying price. |
theta | f64 | Sensitivity of the option value to the passage of time. |
vega | f64 | Sensitivity of the option value to a change in implied volatility. |
rho | f64 | Sensitivity of the option value to the risk-free rate. |
iv_error | f64 | Residual pricing error of the implied-volatility solve. |
vanna | f64 | Sensitivity of delta to a change in implied volatility. |
charm | f64 | Rate of change of delta over time. |
vomma | f64 | Sensitivity of vega to a change in implied volatility. |
veta | f64 | Rate of change of vega over time. |
speed | f64 | Rate of change of gamma with respect to the underlying price. |
zomma | f64 | Sensitivity of gamma to a change in implied volatility. |
color | f64 | Rate of change of gamma over time. |
ultima | f64 | Sensitivity of vomma to a change in implied volatility. |
d1 | f64 | Black-Scholes d1 intermediate term. |
d2 | f64 | Black-Scholes d2 intermediate term. |
dual_delta | f64 | Sensitivity of the option value to the strike price. |
dual_gamma | f64 | Second derivative of the option value with respect to the strike. |
epsilon | f64 | Sensitivity of the option value to the dividend yield. |
lambda | f64 | Percent change in the option value per percent change in the underlying. |
vera | f64 | Sensitivity of rho to a change in implied volatility. |
underlying_ms_of_day | i32 | Timestamp of the underlying price, milliseconds since midnight ET. |
underlying_price | f64 | Underlying price used in the calculation (midpoint of the underlying). |
date | i32 | Trading date as a YYYYMMDD integer. |
Wildcard requests additionally populate expiration (YYYYMMDD), strike (dollars), and right ("C" / "P") on every row to identify the contract; on single-contract requests these are absent (None / null / undefined; the Rust and C rows carry the documented 0 / 0.0 / '\0' fills).
Example response
ms_of_day | bid | ask | implied_volatility | delta | gamma | theta | vega | rho | iv_error | vanna | charm | vomma | veta | speed | zomma | color | ultima | d1 | d2 | dual_delta | dual_gamma | epsilon | lambda | vera | underlying_ms_of_day | underlying_price | date |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 34200000 | 0 | 0 | 0 | 0.99999 | 0 | 0 | 0 | 0 | 100 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 34200000 | 540.86 | 20240614 |
| 34500000 | 40.91 | 41.98 | 0 | 1 | 0 | 0 | 0 | 0 | 0.006 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 34500000 | 541.18 | 20240614 |
| 34800000 | 41.33 | 42.31 | 0 | 1 | 0 | 0 | 0 | 0 | 0.0052 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 34800000 | 541.53 | 20240614 |
Decoded from a captured production response; 3 of 79 rows shown.