Options

get_option_analysis

Signature


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

ParameterRust typeRequirementSDK default
req.symbolsOption<Vec<String>>Conditional: at least one of symbols / symbol_itemsNone (omitted)
req.symbol_itemsOption<Vec<OptionAnalysisSymbol>>Conditional: at least one of symbols / symbol_itemsNone (omitted)
req.marketOption<String>OptionalNone (omitted)
req.periodOption<String>OptionalNone (omitted)
req.require_volatility_listOption<bool>OptionalNone (omitted)
req.langOption<String>OptionalNone (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

Signature


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

ParameterRust typeRequirementSDK default
req.option_basicOption<Vec<OptionChainItem>>Required by server; SDK does not pre-validateNone (omitted)
req.marketOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)
req.return_greek_valueOption<bool>OptionalNone (omitted)
req.option_filterOption<OptionChainFilter>OptionalNone (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

Signature


pub async fn get_option_depth( &self, req: OptionDepthRequest, ) -> Result<Vec<Depth>, TigerError>

Description

option_basic and depth permission required.

Parameters

ParameterRust typeRequirementSDK default
req.option_basicOption<Vec<OptionQueryItem>>Required by server; SDK does not pre-validateNone (omitted)
req.marketOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (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

Signature


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

ParameterRust typeRequirementSDK default
symbols&[&str]RequiredNone
marketOption<&str>OptionalNone (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 use SPX; weekly and quarterly options use SPXW.
  • Nasdaq-100: monthly options use NDX; weekly options use NDXP.
  • VIX: monthly options use VIX; weekly options use VIXW.

get_option_kline

Signature


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

ParameterRust typeRequirementSDK default
req.option_queryOption<Vec<OptionKlineItem>>Required by server; SDK does not pre-validateNone (omitted)
req.marketOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (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

Signature


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_brief forwards to this method and has been marked #[deprecated] in the SDK since 0.5.1. It adds no behavior. Use get_option_quote in new code.

Parameters

ParameterRust typeRequirementSDK default
req.option_basicOption<Vec<OptionContractItem>>Required by server; SDK does not pre-validateNone (omitted)
req.marketOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (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

Signature


pub async fn get_option_symbols( &self, req: OptionSymbolsRequest, ) -> Result<Vec<OptionSymbol>, TigerError>

Description

HK option universe; normally market=HK.

Parameters

ParameterRust typeRequirementSDK default
req.marketOption<String>Required by server; SDK does not pre-validateNone (omitted)
req.langOption<String>OptionalNone (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

Signature


pub async fn get_option_timeline( &self, req: OptionTimelineRequest, ) -> Result<Vec<Timeline>, TigerError>

Description

option_query required.

Parameters

ParameterRust typeRequirementSDK default
req.option_queryOption<Vec<OptionQueryItem>>Required by server; SDK does not pre-validateNone (omitted)
req.marketOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (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

Signature


pub async fn get_option_trade_ticks( &self, req: OptionTradeTicksRequest, ) -> Result<Vec<TradeTick>, TigerError>

Description

contracts required, containing OptionQueryItem.

Parameters

ParameterRust typeRequirementSDK default
req.contractsOption<Vec<OptionQueryItem>>Required by server; SDK does not pre-validateNone (omitted)
req.langOption<String>OptionalNone (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": "-"
      }
    ]
  }
]


Did this page help you?