数字货币
数字货币 HTTP 行情支持 K 线和当前分时,不支持历史分时。
获取 K 线数据
签名
pub async fn get_kline(&self, req: KlineRequest) -> Result<Vec<Kline>, TigerError>说明
获取数字货币 K 线。服务端要求 symbols 和 period;将 sec_type 设为 Some("CC".into())。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | 服务端必填;SDK 不预校验 | None(不序列化) |
| req.period | Option<String> | 服务端必填;SDK 不预校验 | None(不序列化) |
| req.right | Option<String> | 可选 | None(不序列化) |
| req.begin_time | Option<i64> | 可选 | None(不序列化) |
| req.end_time | Option<i64> | 可选 | None(不序列化) |
| req.limit | Option<i32> | 可选 | None(不序列化) |
| req.begin_index | Option<i32> | 可选 | None(不序列化) |
| req.end_index | Option<i32> | 可选 | None(不序列化) |
| req.page_token | Option<String> | 可选 | None(不序列化) |
| req.trade_session | Option<String> | 可选 | None(不序列化) |
| req.date | Option<String> | 可选 | None(不序列化) |
| req.with_fundamental | Option<bool> | 可选 | None(不序列化) |
| req.sec_type | Option<String> | 数字货币必填;使用 CC | None(不序列化) |
| req.lang | Option<String> | 可选 | None(不序列化) |
返回
Result<Vec<Kline>, TigerError>
| Rust 字段 | JSON 字段 | 类型 | 说明 |
|---|---|---|---|
| symbol | symbol | String | 数字货币代码 |
| period | period | String | 周期 |
| next_page_token | nextPageToken | String | 下一页标记 |
| items | items | Vec | 数据列表 |
items 元素(KlineItem):
| Rust 字段 | JSON 字段 | 类型 | 说明 |
|---|---|---|---|
| time | time | i64 | 时间戳 |
| volume | volume | i64 | 整数成交量;volume_decimal 缺失时使用 |
| volume_decimal | volumeDecimal | Option<f64> | 可选小数数字货币成交量;缺失时读取 volume |
| open | open | f64 | 开盘价 |
| close | close | f64 | 收盘价 |
| high | high | f64 | 最高价 |
| low | low | f64 | 最低价 |
| amount | amount | f64 | 成交额 |
示例
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 kline = quote.get_kline(KlineRequest {
symbols: Some(vec!["BTC.USD".into()]),
period: Some("day".into()),
sec_type: Some("CC".into()),
..Default::default()
}).await?;
println!("bars={}", kline.len());
Ok(())
}请求频率
基础限流为 60 次/分钟。本页使用 kline 的方法共享此额度。
分页获取 K 线数据
签名
pub async fn get_kline_by_page(&self, req: KlineByPageRequest) -> Result<Vec<KlineItem>, TigerError>说明
客户端分页获取数字货币 K 线。SDK 默认 page_size 为 200、total_size 为 1000,使用最早 bar 的 time - 1 继续请求。sec_type 会传递到每一页请求;将其设为 Some("CC".into())。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | 可选 | None(不序列化) |
| req.period | Option<String> | 可选 | None(不序列化) |
| req.begin_time | Option<i64> | 可选 | None(不序列化) |
| req.end_time | Option<i64> | 可选 | None(不序列化) |
| req.total_size | Option<i32> | 可选 | None 时 1000 |
| req.page_size | Option<i32> | 可选 | None 时 200 |
| req.right | Option<String> | 可选 | None(不序列化) |
| req.trade_session | Option<String> | 可选 | None(不序列化) |
| req.sec_type | Option<String> | 数字货币必填;使用 CC | None(不序列化) |
| req.lang | Option<String> | 可选 | None(不序列化) |
返回
Result<Vec<KlineItem>, TigerError>
| Rust 字段 | JSON 字段 | 类型 | 说明 |
|---|---|---|---|
| time | time | i64 | 时间戳 |
| volume | volume | i64 | 整数成交量;volume_decimal 缺失时使用 |
| volume_decimal | volumeDecimal | Option<f64> | 可选小数数字货币成交量;缺失时读取 volume |
| open | open | f64 | 开盘价 |
| close | close | f64 | 收盘价 |
| high | high | f64 | 最高价 |
| low | low | f64 | 最低价 |
| amount | amount | f64 | 成交额 |
示例
use tigeropen::config::ClientConfig;
use tigeropen::model::quote_requests::KlineByPageRequest;
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 kline = quote.get_kline_by_page(KlineByPageRequest {
symbols: Some(vec!["BTC.USD".into()]),
period: Some("day".into()),
sec_type: Some("CC".into()),
total_size: Some(100),
..Default::default()
}).await?;
println!("bars={}", kline.len());
Ok(())
}请求频率
基础限流为 60 次/分钟。本页使用 kline 的方法共享此额度。
按请求获取当前分时数据
签名
pub async fn get_timeline_with_request(&self, req: TimelineRequest) -> Result<Vec<Timeline>, TigerError>说明
获取数字货币当前分时数据。将 sec_type 设为 Some("CC".into())。该方法不提供数字货币历史分时。
参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | 服务端必填;SDK 不预校验 | None(不序列化) |
| req.sec_type | Option<String> | 数字货币必填;使用 CC | None(不序列化) |
返回
Result<Vec<Timeline>, TigerError>
| Rust 字段 | JSON 字段 | 类型 | 说明 |
|---|---|---|---|
| symbol | symbol | String | 数字货币代码 |
| period | period | String | 周期 |
| pre_close | preClose | f64 | 前收价 |
| intraday | intraday | Option<TimelineBucket> | 盘中分时数据 |
| pre_hours | preHours | Option<TimelineBucket> | 盘前分时数据 |
| after_hours | afterHours | Option<TimelineBucket> | 盘后分时数据 |
TimelineBucket 字段:
| Rust 字段 | JSON 字段 | 类型 | 说明 |
|---|---|---|---|
| items | items | Vec<TimelineItem> | 分时点列表 |
各 TimelineBucket.items 元素为 TimelineItem:
| Rust 字段 | JSON 字段 | 类型 | 说明 |
|---|---|---|---|
| time | time | i64 | 时间戳 |
| volume | volume | i64 | 整数成交量;volume_decimal 缺失时使用 |
| volume_decimal | volumeDecimal | Option<f64> | 可选小数数字货币成交量;缺失时读取 volume |
| price | price | f64 | 价格 |
| avg_price | avgPrice | f64 | 平均价 |
示例
use tigeropen::config::ClientConfig;
use tigeropen::model::quote_requests::TimelineRequest;
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 timeline = quote.get_timeline_with_request(TimelineRequest {
symbols: Some(vec!["BTC.USD".into()]),
sec_type: Some("CC".into()),
}).await?;
println!("series={}", timeline.len());
Ok(())
}请求频率
基础限流为 120 次/分钟。
Updated 1 day ago
Did this page help you?
