期权
获取期权分析
签名
pub async fn get_option_analysis( &self, req: OptionAnalysisRequest, ) -> Result<Vec<OptionAnalysis>, TigerError>
说明
symbols 与 symbol_items 二选一;后者优先;可请求波动率序列。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | 条件必填:symbols / symbol_items 至少一个 | None(不序列化) |
| req.symbol_items | Option<Vec<OptionAnalysisSymbol>> | 条件必填:symbols / symbol_items 至少一个 | None(不序列化) |
| req.market | Option<String> | 可选 | None(不序列化) |
| req.period | Option<String> | 可选 | None(不序列化) |
| req.require_volatility_list | Option<bool> | 可选 | None(不序列化) |
| req.lang | Option<String> | 可选 | None(不序列化) |
返回
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/his_volatility/iv_his_v_ratio/call_put_ratio/implied_vol_metric/volatility_list。
示例
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(())
}
返回示例
[
{
"symbol": "AAPL",
"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
}
]
}
]获取期权链
签名
pub async fn get_option_chain( &self, req: OptionChainRequest, ) -> Result<Vec<OptionChain>, TigerError>
说明
v3 期权链;option_basic 必填;Greeks 默认不请求;范围筛选边界由 RangeF64/RangeI32 表示。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.option_basic | Option<Vec<OptionChainItem>> | 服务端必填;SDK 不预校验 | None(不序列化) |
| req.market | Option<String> | 可选 | None(不序列化) |
| req.lang | Option<String> | 可选 | None(不序列化) |
| req.return_greek_value | Option<bool> | 可选 | None(不序列化) |
| req.option_filter | Option<OptionChainFilter> | 可选 | None(不序列化) |
返回
QuoteClient:Result<Vec<OptionChain>, TigerError>. symbol: String, expiry: i64, items: Vec
symbol/expiry/items(call,put);leg 含报价、持仓量、IV 和 Greeks。
示例
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(())
}
返回示例
[
{
"symbol": "AAPL",
"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
}
}
]
}
]获取期权深度
签名
pub async fn get_option_depth( &self, req: OptionDepthRequest, ) -> Result<Vec<Depth>, TigerError>
说明
期权盘口;option_basic 必填;需深度权限。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.option_basic | Option<Vec<OptionQueryItem>> | 服务端必填;SDK 不预校验 | None(不序列化) |
| req.market | Option<String> | 可选 | None(不序列化) |
| req.lang | Option<String> | 可选 | None(不序列化) |
返回
QuoteClient:Result<Vec<Depth>, TigerError>. symbol: String, asks: Vec
Vec<Depth>
示例
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(())
}
返回示例
[
{
"symbol": "AAPL",
"asks": [
{
"price": 195.51,
"volume": 200
},
{
"price": 195.52,
"volume": 350
}
],
"bids": [
{
"price": 195.49,
"volume": 150
},
{
"price": 195.48,
"volume": 400
}
]
}
]获取期权到期日
签名
pub async fn get_option_expiration( &self, symbols: &[&str], market: Option<&str>, ) -> Result<Vec<OptionExpiration>, TigerError>
说明
到期日;symbols 非空;港股传 Some("HK")。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| symbols | &[&str] | 必填 | 无 |
| market | Option<&str> | 可选 | None(不序列化) |
返回
QuoteClient:Result<Vec<OptionExpiration>, TigerError>. symbol: String, option_symbols: Vec
symbol/dates/timestamps/option_symbols/periods/counts。
示例
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(())
}
返回示例
[
{
"symbol": "AAPL",
"option_symbols": ["AAPL 250221C00195000", "AAPL 250221P00195000"],
"dates": ["2025-02-21", "2025-03-21"],
"timestamps": [1740096000000, 1742515200000],
"periods": ["weekly", "monthly"],
"counts": [42, 56]
}
]指数期权的特殊代码
- 标普 500(
.SPX):月度期权符号为SPX,周期权和季度期权为SPXW。 - 纳斯达克 100:月度期权为
NDX,周期权为NDXP。 - VIX 指数:月度期权为
VIX,周期权为VIXW。
获取期权 K 线
签名
pub async fn get_option_kline( &self, req: OptionKlineRequest, ) -> Result<Vec<OptionKline>, TigerError>
说明
v2 K 线;option_query 必填;item 的 sort_dir/时间窗/limit 可选。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.option_query | Option<Vec<OptionKlineItem>> | 服务端必填;SDK 不预校验 | None(不序列化) |
| req.market | Option<String> | 可选 | None(不序列化) |
| req.lang | Option<String> | 可选 | None(不序列化) |
返回
QuoteClient:Result<Vec<OptionKline>, TigerError>.
OptionKline = Kline。
示例
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(())
}
返回示例
[
{
"value": 94836000000.0
}
]获取期权行情
签名
pub async fn get_option_quote( &self, req: OptionQuoteRequest, ) -> Result<Vec<OptionBrief>, TigerError>
说明
v2 快照;option_basic 必填,可用 OptionContractItem::from_occ。
已废弃别名:
get_option_brief是本方法的转发别名,SDK 自 0.5.1 起标记#[deprecated],无额外行为。新代码请直接使用get_option_quote。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.option_basic | Option<Vec<OptionContractItem>> | 服务端必填;SDK 不预校验 | None(不序列化) |
| req.market | Option<String> | 可选 | None(不序列化) |
| req.lang | Option<String> | 可选 | None(不序列化) |
返回
QuoteClient:Result<Vec<OptionBrief>, TigerError>.
OptionBrief = Brief。
示例
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(())
}
返回示例
[
{
"value": 94836000000.0
}
]获取期权代码
签名
pub async fn get_option_symbols( &self, req: OptionSymbolsRequest, ) -> Result<Vec<OptionSymbol>, TigerError>
说明
港股期权代码列表;通常 market=HK。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.market | Option<String> | 服务端必填;SDK 不预校验 | None(不序列化) |
| req.lang | Option<String> | 可选 | None(不序列化) |
返回
QuoteClient:Result<Vec<OptionSymbol>, TigerError>. symbol: String, market: String, name: String, name_cn: String, name_en: String, underlying_symbol: String.
代码、市场、名称、标的代码。
示例
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(())
}
返回示例
[
{
"symbol": "AAPL",
"market": "US",
"name": "AAPL Options",
"name_cn": "苹果期权",
"name_en": "AAPL Options",
"underlying_symbol": "AAPL"
}
]获取期权分时
签名
pub async fn get_option_timeline( &self, req: OptionTimelineRequest, ) -> Result<Vec<Timeline>, TigerError>
说明
期权分时;option_query 必填。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.option_query | Option<Vec<OptionQueryItem>> | 服务端必填;SDK 不预校验 | None(不序列化) |
| req.market | Option<String> | 可选 | None(不序列化) |
| req.lang | Option<String> | 可选 | None(不序列化) |
返回
QuoteClient:Result<Vec<Timeline>, TigerError>. symbol: String, period: String, pre_close: f64, intraday: Option
Vec<Timeline>
示例
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(())
}
返回示例
[
{
"symbol": "AAPL",
"period": "day",
"pre_close": 192.53,
"intraday": null,
"pre_hours": null,
"after_hours": null
}
]获取期权逐笔
签名
pub async fn get_option_trade_ticks( &self, req: OptionTradeTicksRequest, ) -> Result<Vec<TradeTick>, TigerError>
说明
期权逐笔;contracts 必填,每项为 OptionQueryItem。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.contracts | Option<Vec<OptionQueryItem>> | 服务端必填;SDK 不预校验 | None(不序列化) |
| req.lang | Option<String> | 可选 | None(不序列化) |
返回
QuoteClient:Result<Vec<TradeTick>, TigerError>. symbol: String, begin_index: i64, end_index: i64, items: Vec
Vec<TradeTick>
示例
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(())
}
返回示例
[
{
"symbol": "AAPL",
"begin_index": 0,
"end_index": 30,
"items": [
{
"time": 1738180750000,
"price": 195.5,
"volume": 100,
"type": "+"
},
{
"time": 1738180745000,
"price": 195.49,
"volume": 50,
"type": "-"
}
]
}
]Updated 8 days ago
