快速入门

安装

[dependencies]
tigeropen = "0.5.7"
tokio = { version = "1", features = ["full"] }

SDK 要求 Rust 1.70+。tiger_id 和 RSA private_key 必填;交易接口还需 account。TBHK 牌照需 token;机构高风险交易需 secret_key

配置

配置优先级为环境变量、Builder、自动发现的 properties 文件、SDK 默认值。自动发现路径依次为 ./tiger_openapi_config.properties~/.tigeropen/tiger_openapi_config.properties

tiger_id=YOUR_TIGER_ID
private_key=YOUR_RSA_PRIVATE_KEY
account=YOUR_ACCOUNT
license=TBUS

环境变量为 TIGEROPEN_TIGER_IDTIGEROPEN_PRIVATE_KEYTIGEROPEN_ACCOUNTTIGEROPEN_TOKENTIGEROPEN_TOKEN_FILE。请求超时默认 15 秒;动态域名默认启用。

从配置创建行情客户端

pub fn from_config(config: ClientConfig) -> QuoteClient

构造指向行情服务器的客户端。公开行情仍受市场行情权限限制。

从配置创建交易客户端

pub fn from_config(config: ClientConfig) -> TradeClient

config.account 读取账户并构造交易客户端。下单、资金和行权权限由账户类型决定。

示例

use tigeropen::config::ClientConfig;
use tigeropen::model::quote_requests::KlineRequest;
use tigeropen::quote::QuoteClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = ClientConfig::builder().build()?;
    let quote = QuoteClient::from_config(config);
    let states = quote.get_market_state("US").await?;
    let bars = quote.get_kline(KlineRequest {
        symbols: Some(vec!["AAPL".into()]),
        period: Some("day".into()),
        limit: Some(10),
        ..Default::default()
    }).await?;
    println!("states={}, series={}", states.len(), bars.len());
    Ok(())
}
[{"market":"US","marketStatus":"Trading","status":"TRADING","openTime":"09:30"}]

源码:ClientConfigQuoteClientTradeClient


Did this page help you?