Options
get_option_analysis
get_option_analysisSignature
pub async fn get_option_analysis( &self, req: OptionAnalysisRequest, ) -> Result<Vec<OptionAnalysis>, TigerError>
Description
Use symbols or symbol_items; items take precedence; volatility history optional.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | Conditional: at least one of symbols / symbol_items | None (omitted) |
| req.symbol_items | Option<Vec<OptionAnalysisSymbol>> | Conditional: at least one of symbols / symbol_items | None (omitted) |
| req.market | Option<String> | Optional | None (omitted) |
| req.period | Option<String> | Optional | None (omitted) |
| req.require_volatility_list | Option<bool> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
QuoteClient:Result<Vec<OptionAnalysis>, TigerError>. symbol: String, implied_vol30_days: f64, his_volatility: f64, iv_his_v_ratio: f64, call_put_ratio: f64, implied_vol_metric: Option
implied_vol30_days, historical volatility, ratios, metric, series.
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_option_analysis(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_option_analysis(OptionAnalysisRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL 250221C00195000",
"implied_vol30_days": 0.2845,
"his_volatility": 0.213,
"iv_his_v_ratio": 1.3356,
"call_put_ratio": 1.52,
"implied_vol_metric": null,
"volatility_list": [
{
"period": "30d",
"implied_vol": 0.2845,
"his_vol": 0.213
}
]
}
]get_option_chain
get_option_chainSignature
pub async fn get_option_chain( &self, req: OptionChainRequest, ) -> Result<Vec<OptionChain>, TigerError>
Description
v3; option_basic required; Greeks omitted by default; RangeF64/RangeI32 filters.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.option_basic | Option<Vec<OptionChainItem>> | Required by server; SDK does not pre-validate | None (omitted) |
| req.market | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
| req.return_greek_value | Option<bool> | Optional | None (omitted) |
| req.option_filter | Option<OptionChainFilter> | Optional | None (omitted) |
Return
QuoteClient:Result<Vec<OptionChain>, TigerError>. symbol: String, expiry: i64, items: Vec
symbol/expiry/rows with call and put quote, OI, IV, Greeks.
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_option_chain(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_option_chain(OptionChainRequest { option_basic: Some(Default::default()), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL 250221C00195000",
"expiry": 1740096000000,
"items": [
{
"strike": 195.0,
"call": {
"symbol": "AAPL 250221C00195000",
"latest_price": 3.45,
"volume": 12500,
"open_interest": 35000
},
"put": {
"symbol": "AAPL 250221P00195000",
"latest_price": 2.8,
"volume": 9800,
"open_interest": 28000
}
}
]
}
]get_option_depth
get_option_depthSignature
pub async fn get_option_depth( &self, req: OptionDepthRequest, ) -> Result<Vec<Depth>, TigerError>
Description
option_basic and depth permission required.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.option_basic | Option<Vec<OptionQueryItem>> | Required by server; SDK does not pre-validate | None (omitted) |
| req.market | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
QuoteClient:Result<Vec<Depth>, TigerError>. symbol: String, asks: Vec
Vec<Depth>
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_option_depth(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_option_depth(OptionDepthRequest { option_basic: Some(Default::default()), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL 250221C00195000",
"asks": [
{
"price": 195.51,
"volume": 200
},
{
"price": 195.52,
"volume": 350
}
],
"bids": [
{
"price": 195.49,
"volume": 150
},
{
"price": 195.48,
"volume": 400
}
]
}
]get_option_expiration
get_option_expirationSignature
pub async fn get_option_expiration( &self, symbols: &[&str], market: Option<&str>, ) -> Result<Vec<OptionExpiration>, TigerError>
Description
Nonempty symbols; pass Some("HK") for HK options.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| symbols | &[&str] | Required | None |
| market | Option<&str> | Optional | None (omitted) |
Return
QuoteClient:Result<Vec<OptionExpiration>, TigerError>. symbol: String, option_symbols: Vec
symbol/dates/timestamps/option_symbols/periods/counts.
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_option_expiration(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_option_expiration(&["AAPL"], None).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL 250221C00195000",
"option_symbols": ["AAPL 250221C00195000", "AAPL 250221P00195000"],
"dates": ["2025-02-21", "2025-03-21"],
"timestamps": [1740096000000, 1742515200000],
"periods": ["weekly", "monthly"],
"counts": [42, 56]
}
]Special option symbols for indices
- S&P 500 (
.SPX): monthly options useSPX; weekly and quarterly options useSPXW. - Nasdaq-100: monthly options use
NDX; weekly options useNDXP. - VIX: monthly options use
VIX; weekly options useVIXW.
get_option_kline
get_option_klineSignature
pub async fn get_option_kline( &self, req: OptionKlineRequest, ) -> Result<Vec<OptionKline>, TigerError>
Description
v2; option_query required; sort direction, range, limit optional per item.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.option_query | Option<Vec<OptionKlineItem>> | Required by server; SDK does not pre-validate | None (omitted) |
| req.market | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
QuoteClient:Result<Vec<OptionKline>, TigerError>.
OptionKline = Kline
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_option_kline(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_option_kline(OptionKlineRequest { option_query: Some(Default::default()), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"value": 94836000000.0
}
]get_option_quote
get_option_quoteSignature
pub async fn get_option_quote( &self, req: OptionQuoteRequest, ) -> Result<Vec<OptionBrief>, TigerError>
Description
v2; option_basic required; use OptionContractItem::from_occ.
Deprecated alias:
get_option_briefforwards to this method and has been marked#[deprecated]in the SDK since 0.5.1. It adds no behavior. Useget_option_quotein new code.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.option_basic | Option<Vec<OptionContractItem>> | Required by server; SDK does not pre-validate | None (omitted) |
| req.market | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
QuoteClient:Result<Vec<OptionBrief>, TigerError>.
OptionBrief = Brief
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_option_quote(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_option_quote(OptionQuoteRequest { option_basic: Some(Default::default()), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"value": 94836000000.0
}
]get_option_symbols
get_option_symbolsSignature
pub async fn get_option_symbols( &self, req: OptionSymbolsRequest, ) -> Result<Vec<OptionSymbol>, TigerError>
Description
HK option universe; normally market=HK.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.market | Option<String> | Required by server; SDK does not pre-validate | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
QuoteClient:Result<Vec<OptionSymbol>, TigerError>. symbol: String, market: String, name: String, name_cn: String, name_en: String, underlying_symbol: String.
Symbol, market, names, underlying.
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_option_symbols(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_option_symbols(OptionSymbolsRequest { market: Some("US".into()), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL",
"market": "US",
"name": "AAPL Options",
"name_cn": "苹果期权",
"name_en": "AAPL Options",
"underlying_symbol": "AAPL"
}
]get_option_timeline
get_option_timelineSignature
pub async fn get_option_timeline( &self, req: OptionTimelineRequest, ) -> Result<Vec<Timeline>, TigerError>
Description
option_query required.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.option_query | Option<Vec<OptionQueryItem>> | Required by server; SDK does not pre-validate | None (omitted) |
| req.market | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
QuoteClient:Result<Vec<Timeline>, TigerError>. symbol: String, period: String, pre_close: f64, intraday: Option
Vec<Timeline>
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_option_timeline(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_option_timeline(OptionTimelineRequest { option_query: Some(Default::default()), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL 250221C00195000",
"period": "day",
"pre_close": 192.53,
"intraday": null,
"pre_hours": null,
"after_hours": null
}
]get_option_trade_ticks
get_option_trade_ticksSignature
pub async fn get_option_trade_ticks( &self, req: OptionTradeTicksRequest, ) -> Result<Vec<TradeTick>, TigerError>
Description
contracts required, containing OptionQueryItem.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.contracts | Option<Vec<OptionQueryItem>> | Required by server; SDK does not pre-validate | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
QuoteClient:Result<Vec<TradeTick>, TigerError>. symbol: String, begin_index: i64, end_index: i64, items: Vec
Vec<TradeTick>
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_option_trade_ticks(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_option_trade_ticks(OptionTradeTicksRequest { contracts: Some(Default::default()), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL 250221C00195000",
"begin_index": 0,
"end_index": 30,
"items": [
{
"time": 1738180750000,
"price": 195.5,
"volume": 100,
"type": "+"
},
{
"time": 1738180745000,
"price": 195.49,
"volume": 50,
"type": "-"
}
]
}
]Updated about 13 hours ago
