Skip to content

Second-Order Trade Greeks

FreeValueStandardPro

Fetch second-order Greeks on each trade for an option contract.

  • Returns the data for all contracts that share the same provided symbol and expiration.
  • Calculates greeks for every trade reported by OPRA.
  • The underlying price represents whatever the last underlying price was at the timestamp field. You can read more about how Theta Data calculates greeks here.
  • Multi-day requests are limited to 1 month of data, and must specify an expiration.
rust
pub fn option_history_trade_greeks_second_order(
    &self,
    symbol: &str,
    expiration: &str,
    date: &str,
) -> OptionHistoryTradeGreeksSecondOrderBuilder<'_>

Optional parameters chain on the builder: .strike(&str), .right(&str), .start_time(&str), .end_time(&str), .annual_dividend(f64), .rate_type(&str), .rate_value(f64), .version(&str), .max_dte(i32), .strike_range(i32), .start_date(&str), .end_date(&str). Execute with .awaitResult<Vec<TradeGreeksSecondOrderTick>, Error>, or decode chunk-by-chunk with .stream(handler).

Example

rust
let rows = tdx
    .option_history_trade_greeks_second_order("SPY", "20250321", "20250303")
    .strike("570")
    .right("C")
    .await?;
for t in &rows {
    println!("ms_of_day={} price={} gamma={} vanna={}", t.ms_of_day, t.price, t.gamma, t.vanna);
}

Parameters

NameTypeRequiredDefaultDescription
symbolstringyesTicker symbol (e.g. AAPL)
expirationdateyesExpiration date YYYYMMDD
datedateyesDate 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.
start_timestringno09:30:00Start time filter
end_timestringno16:00:00End time filter
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.
max_dteintnoMaximum days to expiration
strike_rangeintnoStrike range filter
start_datedatenoStart date YYYYMMDD
end_datedatenoEnd date YYYYMMDD
timeout_msintnoPer-request deadline in milliseconds. 0 means no deadline.

Response

Rows of TradeGreeksSecondOrderTick:

FieldTypeDescription
ms_of_dayi32Milliseconds since midnight Eastern Time.
sequencei32Exchange-assigned trade sequence number.
ext_condition1i32Additional trade condition code.
ext_condition2i32Additional trade condition code.
ext_condition3i32Additional trade condition code.
ext_condition4i32Additional trade condition code.
conditioni32Trade condition code.
sizei32Number of contracts or shares traded.
exchangei32Exchange code where the trade executed.
pricef64Trade price.
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.
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_daysequenceext_condition1ext_condition2ext_condition3ext_condition4conditionsizeexchangepricegammavannacharmvommavetaimplied_volatilityiv_errorunderlying_ms_of_dayunderlying_pricedate
3437294018468526002552552552551813161.050.0036-0.63610.0004162.7885115.94270.2001034372000565.1320250502

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

Released under the Apache-2.0 License.