Tiger OpenAPI Rust SDK
老虎证券 OpenAPI 的 Rust SDK,提供行情查询、交易下单、账户管理和实时推送等功能。
安装
在 Cargo.toml 中添加依赖:
[]
= "0.1.0"
= { = "1", = ["full"] }
要求 Rust 1.70 或更高版本。
Quick Start
以下是一个完整的示例,从配置到查询行情:
use ClientConfig;
use HttpClient;
use QuoteClient;
async
配置
SDK 支持三种配置方式,优先级:环境变量 > Builder 设置(含配置文件) > 默认值。
方式一:Builder 模式
use ClientConfig;
let config = builder
.tiger_id
.private_key
.account
.build?;
方式二:从 properties 配置文件加载
let config = builder
.properties_file
.build?;
配置文件格式:
方式三:环境变量
配置项说明
| 配置项 | 说明 | 必填 | 默认值 |
|---|---|---|---|
| tiger_id | 开发者 ID | 是 | - |
| private_key | RSA 私钥 | 是 | - |
| account | 交易账户 | 否 | - |
| language | 语言(ZhCn/EnUs) | 否 | ZhCn |
| timeout | 请求超时 | 否 | 15s |
| sandbox_debug | 是否使用沙箱环境 | 否 | false |
行情查询
use HttpClient;
use QuoteClient;
let http_client = new;
let qc = new;
// 获取市场状态
let states = qc.get_market_state.await?;
// 获取实时报价
let briefs = qc.get_brief.await?;
// 获取 K 线数据
let klines = qc.get_kline.await?;
// 获取分时数据
let timeline = qc.get_timeline.await?;
// 获取深度行情
let depth = qc.get_quote_depth.await?;
// 获取期权到期日
let expiry = qc.get_option_expiration.await?;
// 获取期权链
let chain = qc.get_option_chain.await?;
// 获取期货交易所列表
let exchanges = qc.get_future_exchange.await?;
交易操作
use HttpClient;
use TradeClient;
use json;
let http_client = new;
let tc = new;
// 构造限价单
let order = json!;
// 下单
let result = tc.place_order.await?;
// 预览订单(不实际下单)
let preview = tc.preview_order.await?;
// 修改订单
let modified = json!;
tc.modify_order.await?;
// 取消订单
tc.cancel_order.await?;
// 查询全部订单
let orders = tc.get_orders.await?;
// 查询持仓
let positions = tc.get_positions.await?;
// 查询资产
let assets = tc.get_assets.await?;
通用方法(execute)
当 SDK 尚未封装某个 API 时,可以使用 HttpClient::execute 直接调用:
let http_client = new;
// 直接传入 API 方法名和 JSON 参数
let resp = http_client.execute.await?;
println!;
实时推送
通过 WebSocket 长连接接收实时行情和账户推送,支持自动重连和心跳保活:
use ;
use Arc;
let pc = new;
// 设置回调
pc.set_callbacks;
// 订阅行情
pc.add_subscription;
// 订阅账户推送
pc.add_account_sub;
pc.add_account_sub;
pc.add_account_sub;
// 断开连接
pc.disconnect;
项目结构
openapi-rust-sdk/
├── src/
│ ├── config/ # 配置管理(ClientConfig Builder、ConfigParser、动态域名)
│ ├── signer/ # RSA 签名
│ ├── client/ # HTTP 客户端(请求/响应、重试策略、execute)
│ ├── model/ # 数据模型(Order、Contract、Position、枚举)
│ ├── quote/ # 行情查询客户端
│ ├── trade/ # 交易客户端
│ ├── push/ # WebSocket 实时推送客户端
│ ├── error.rs # 错误类型
│ ├── logger.rs # 日志模块
│ └── lib.rs # 统一导出
├── examples/ # 示例代码
└── tests/ # 测试