EOD Greeks
FreeValueStandardPro
Fetch end-of-day Greeks history for an option contract.
- Returns the data for all contracts that share the same provided symbol and expiration.
- Uses Theta Data's EOD reports that get generated at 17:15 ET each day. The closing option price and closing underlying price are used for the greeks calculation.
- Set
expirationto*if you want to retrieve data for every option that shares the samesymbol. (note: Anyexpiration=*must be requested day by day)
rust
pub fn option_history_greeks_eod(
&self,
symbol: &str,
expiration: &str,
start_date: &str,
end_date: &str,
) -> OptionHistoryGreeksEodBuilder<'_>Optional parameters chain on the builder: .strike(&str), .right(&str), .annual_dividend(f64), .rate_type(&str), .rate_value(f64), .version(&str), .underlyer_use_nbbo(bool), .max_dte(i32), .strike_range(i32). Execute with .await → Result<Vec<GreeksEodTick>, Error>, or decode chunk-by-chunk with .stream(handler).
Example
rust
let rows = tdx
.option_history_greeks_eod("SPY", "20250321", "20250303", "20250306")
.strike("570")
.right("C")
.await?;
for t in &rows {
println!("date={} close={} delta={} implied_volatility={}", t.date, t.close, t.delta, t.implied_volatility);
}Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
symbol | string | yes | — | Ticker symbol (e.g. AAPL) |
expiration | date | yes | — | Expiration date YYYYMMDD |
start_date | date | yes | — | Start date YYYYMMDD |
end_date | date | yes | — | End 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. |
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. |
underlyer_use_nbbo | bool | no | false | When true, use the NBBO-derived underlyer price as the Greeks input instead of the last trade. |
max_dte | int | no | — | Maximum days to expiration |
strike_range | int | no | — | Strike range filter |
timeout_ms | int | no | — | Per-request deadline in milliseconds. 0 means no deadline. |
Response
Rows of GreeksEodTick:
| Field | Type | Description |
|---|---|---|
ms_of_day | i32 | EOD report creation time, milliseconds since midnight ET. |
open | f64 | Opening trade price. |
high | f64 | Highest traded price. |
low | f64 | Lowest traded price. |
close | f64 | Closing traded price. |
volume | i64 | Number of contracts or shares traded. |
count | i64 | Number of trades. |
bid_size | i32 | Last NBBO bid size. |
bid_exchange | i32 | Exchange code of the NBBO bid. |
bid | f64 | Last NBBO bid price. |
bid_condition | i32 | Quote condition code on the bid side. |
ask_size | i32 | Last NBBO ask size. |
ask_exchange | i32 | Exchange code of the NBBO ask. |
ask | f64 | Last NBBO ask price. |
ask_condition | i32 | Quote condition code on the ask side. |
delta | f64 | Sensitivity of the option value to a one-dollar move in the underlying. |
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. |
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. |
gamma | f64 | Rate of change of delta with respect to the underlying price. |
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. |
vera | f64 | Sensitivity of rho to a change in implied volatility. |
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. |
implied_volatility | f64 | Implied volatility solved from the option price. |
iv_error | f64 | Residual pricing error of the implied-volatility solve. |
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 | open | high | low | close | volume | count | bid_size | bid_exchange | bid | bid_condition | ask_size | ask_exchange | ask | ask_condition | delta | theta | vega | rho | epsilon | lambda | gamma | vanna | charm | vomma | veta | vera | speed | zomma | color | ultima | d1 | d2 | dual_delta | dual_gamma | implied_volatility | iv_error | underlying_ms_of_day | underlying_price | date |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 58272295 | 41.71 | 42.78 | 40.48 | 42.78 | 683 | 99 | 325 | 5 | 42.39 | 50 | 418 | 5 | 43.25 | 50 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0109 | 62139187 | 542.7799 | 20240614 |
Decoded from a captured production response; 1 of 1 rows shown.