期权

获取期权分析

签名


pub async fn get_option_analysis( &self, req: OptionAnalysisRequest, ) -> Result<Vec<OptionAnalysis>, TigerError>

说明

symbolssymbol_items 二选一;后者优先;可请求波动率序列。

参数

参数Rust 类型必填性/条件SDK 默认值
req.symbolsOption<Vec<String>>条件必填:symbols / symbol_items 至少一个None(不序列化)
req.symbol_itemsOption<Vec<OptionAnalysisSymbol>>条件必填:symbols / symbol_items 至少一个None(不序列化)
req.marketOption<String>可选None(不序列化)
req.periodOption<String>可选None(不序列化)
req.require_volatility_listOption<bool>可选None(不序列化)
req.langOption<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_basicOption<Vec<OptionChainItem>>服务端必填;SDK 不预校验None(不序列化)
req.marketOption<String>可选None(不序列化)
req.langOption<String>可选None(不序列化)
req.return_greek_valueOption<bool>可选None(不序列化)
req.option_filterOption<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_basicOption<Vec<OptionQueryItem>>服务端必填;SDK 不预校验None(不序列化)
req.marketOption<String>可选None(不序列化)
req.langOption<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]必填
marketOption<&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_queryOption<Vec<OptionKlineItem>>服务端必填;SDK 不预校验None(不序列化)
req.marketOption<String>可选None(不序列化)
req.langOption<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_basicOption<Vec<OptionContractItem>>服务端必填;SDK 不预校验None(不序列化)
req.marketOption<String>可选None(不序列化)
req.langOption<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.marketOption<String>服务端必填;SDK 不预校验None(不序列化)
req.langOption<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_queryOption<Vec<OptionQueryItem>>服务端必填;SDK 不预校验None(不序列化)
req.marketOption<String>可选None(不序列化)
req.langOption<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.contractsOption<Vec<OptionQueryItem>>服务端必填;SDK 不预校验None(不序列化)
req.langOption<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": "-"
      }
    ]
  }
]


Did this page help you?