21 个版本 (11 个破坏性更新)
0.12.0 | 2024年7月30日 |
---|---|
0.11.2 | 2024年6月25日 |
0.7.1 | 2024年3月5日 |
0.5.0 | 2023年11月23日 |
#8 in 财务
8,156 每月下载量
150KB
3K SLoC
databento-rs
Databento的官方Rust客户端库。客户端支持通过类似接口快速、安全地流式传输实时和历史市场数据。
安装
要将crate添加到现有项目,请运行以下命令
cargo add databento
使用
实时
实时和日内回放通过Live客户端提供。以下是一个简单的程序,用于获取下一个ES mini期货交易
use std::error::Error;
use databento::{
dbn::{Dataset, PitSymbolMap, SType, Schema, TradeMsg},
live::Subscription,
LiveClient,
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let mut client = LiveClient::builder()
.key_from_env()?
.dataset(Dataset::GlbxMdp3)
.build()
.await?;
client
.subscribe(
&Subscription::builder()
.symbols("ES.FUT")
.schema(Schema::Trades)
.stype_in(SType::Parent)
.build(),
)
.await
.unwrap();
client.start().await?;
let mut symbol_map = PitSymbolMap::new();
// Get the next trade
loop {
let rec = client.next_record().await?.unwrap();
if let Some(trade) = rec.get::<TradeMsg>() {
let symbol = &symbol_map[trade];
println!("Received trade for {symbol}: {trade:?}");
break;
}
symbol_map.on_record(rec)?;
}
Ok(())
}
要运行此程序,请设置DATABENTO_API_KEY
环境变量并使用API密钥运行cargo run --example historical
历史
以下是一个简单的程序,用于获取整个CME Globex市场的10分钟历史交易
use std::error::Error;
use databento::{
dbn::{Schema, TradeMsg},
historical::timeseries::GetRangeParams,
HistoricalClient, Symbols,
};
use time::macros::{date, datetime};
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let mut client = HistoricalClient::builder().key_from_env()?.build()?;
let mut decoder = client
.timeseries()
.get_range(
&GetRangeParams::builder()
.dataset("GLBX.MDP3")
.date_time_range((
datetime!(2022-06-10 14:30 UTC),
datetime!(2022-06-10 14:40 UTC),
))
.symbols(Symbols::All)
.schema(Schema::Trades)
.build(),
)
.await?;
let symbol_map = decoder
.metadata()
.symbol_map_for_date(date!(2022 - 06 - 10))?;
while let Some(trade) = decoder.decode_record::<TradeMsg>().await? {
let symbol = &symbol_map[trade];
println!("Received trade for {symbol}: {trade:?}");
}
Ok(())
}
要运行此程序,请设置DATABENTO_API_KEY
环境变量并使用API密钥运行cargo bin --example live
。
文档
您可以在Databento文档网站上找到更多示例和完整的API文档。
许可
根据Apache 2.0许可分发。
依赖关系
~9–21MB
~285K SLoC