Skip to content

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 expiration to * if you want to retrieve data for every option that shares the same symbol. (note: Any expiration=* 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 .awaitResult<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

NameTypeRequiredDefaultDescription
symbolstringyesTicker symbol (e.g. AAPL)
expirationdateyesExpiration date YYYYMMDD
start_datedateyesStart date YYYYMMDD
end_datedateyesEnd date YYYYMMDD
strikestringno*Strike price in dollars as a string (e.g. 500 or 17.5). Use * for wildcard selection.
rightstringnobothOption side. Accepted values: call, put, both.
annual_dividendfloatnoAnnualized expected dividend amount, in dollars per share, used in the Greeks calculation (e.g. 2.5 is $2.50 per share per year).
rate_typestringnosofrRisk-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_valuefloatnoInterest 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.
versionstringnolatestGreeks model version. Accepted values: latest, 1.
underlyer_use_nbboboolnofalseWhen true, use the NBBO-derived underlyer price as the Greeks input instead of the last trade.
max_dteintnoMaximum days to expiration
strike_rangeintnoStrike range filter
timeout_msintnoPer-request deadline in milliseconds. 0 means no deadline.

Response

Rows of GreeksEodTick:

FieldTypeDescription
ms_of_dayi32EOD report creation time, milliseconds since midnight ET.
openf64Opening trade price.
highf64Highest traded price.
lowf64Lowest traded price.
closef64Closing traded price.
volumei64Number of contracts or shares traded.
counti64Number of trades.
bid_sizei32Last NBBO bid size.
bid_exchangei32Exchange code of the NBBO bid.
bidf64Last NBBO bid price.
bid_conditioni32Quote condition code on the bid side.
ask_sizei32Last NBBO ask size.
ask_exchangei32Exchange code of the NBBO ask.
askf64Last NBBO ask price.
ask_conditioni32Quote condition code on the ask side.
deltaf64Sensitivity of the option value to a one-dollar move in the underlying.
thetaf64Sensitivity of the option value to the passage of time.
vegaf64Sensitivity of the option value to a change in implied volatility.
rhof64Sensitivity of the option value to the risk-free rate.
epsilonf64Sensitivity of the option value to the dividend yield.
lambdaf64Percent change in the option value per percent change in the underlying.
gammaf64Rate of change of delta with respect to the underlying price.
vannaf64Sensitivity of delta to a change in implied volatility.
charmf64Rate of change of delta over time.
vommaf64Sensitivity of vega to a change in implied volatility.
vetaf64Rate of change of vega over time.
veraf64Sensitivity of rho to a change in implied volatility.
speedf64Rate of change of gamma with respect to the underlying price.
zommaf64Sensitivity of gamma to a change in implied volatility.
colorf64Rate of change of gamma over time.
ultimaf64Sensitivity of vomma to a change in implied volatility.
d1f64Black-Scholes d1 intermediate term.
d2f64Black-Scholes d2 intermediate term.
dual_deltaf64Sensitivity of the option value to the strike price.
dual_gammaf64Second derivative of the option value with respect to the strike.
implied_volatilityf64Implied volatility solved from the option price.
iv_errorf64Residual pricing error of the implied-volatility solve.
underlying_ms_of_dayi32Timestamp of the underlying price, milliseconds since midnight ET.
underlying_pricef64Underlying price used in the calculation (midpoint of the underlying).
datei32Trading 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_dayopenhighlowclosevolumecountbid_sizebid_exchangebidbid_conditionask_sizeask_exchangeaskask_conditiondeltathetavegarhoepsilonlambdagammavannacharmvommavetaveraspeedzommacolorultimad1d2dual_deltadual_gammaimplied_volatilityiv_errorunderlying_ms_of_dayunderlying_pricedate
5827229541.7142.7840.4842.7868399325542.3950418543.25501000000000000000000000.010962139187542.779920240614

Decoded from a captured production response; 1 of 1 rows shown.

Released under the Apache-2.0 License.