6 个版本
0.2.3 | 2023 年 3 月 11 日 |
---|---|
0.2.2 | 2022 年 12 月 21 日 |
0.1.1 | 2022 年 12 月 15 日 |
2209 在 命令行工具
每月 35 次下载
50KB
244 行
bi5
用于解析 bi5
跳过文件的库和 CLI 工具。
Bi5 是一种简单的文件格式,用于存储跳过数据(见 以下)。该格式由瑞士经纪商 dukascopy 等使用。
用法
read_bi5_file
读取单个文件并返回 Vec<Tick>
或 Error
。
use bi5::*;
let ticks = read_bi5_file("test/test.bi5", None).expect("Read failed");
assert_eq!(
ticks.first(),
Some(&Tick { millisecs: 1860002, ask: 133153, bid: 133117, askvol: 0.015, bidvol: 0.02 })
);
Bi5 文件和目录也可以使用迭代器读取
use bi5::*;
let bi5 = Bi5::new("test/test.bi5", None);
for (date_time, tick) in bi5.iter().expect("File error") {
println!("{},{}", date_time, tick);
}
Bi5 文件仅包含时间偏移量。如果知道基准日期/时间,则可以将其传递给构造函数
let bi5 = Bi5::new("test/test.bi5", Some(date_time));
catbi5 工具
catbi5
工具将 bi5
跳过文件输出到 stdout。
Usage: catbi5 [OPTIONS] <FILE>
Arguments:
<FILE> Filename
Options:
-d, --date <DATE_TIME> Date in yyyy-mm-ddTHH:MM:SS format
-s, --sep <SEP> Separator [default: "\t"]
-c, --count Count ticks
-h, --help Print help information
-V, --version Print version information
如果没有提供日期,则基准为 0000-01-01T00:00:00
。否则,从日期输入中计算适当的日期时间。
例如,catbi5 test/test.bi5 -d2022-12-16T14:00:00 -s, | head -4
的输出如下所示
t,bid,ask,bidsize,asksize
2022-12-16 14:31:00.002,133117,133153,0.02,0.015
2022-12-16 14:31:00.124,133128,133133,0.000043,0.0075
2022-12-16 14:31:00.174,133067,133103,0.02,0.015
bi5 格式
bi5 文件是 lzma 编码的跳过序列,其中每个跳过按以下方式编码
字段 | 格式 | 描述 |
---|---|---|
millisecs | u32 | 自纪元开始以来的毫秒数 |
ask | u32 | 询问价格 |
bid | u32 | 投标价格 |
askvol | f32 | 询价量 |
bidvol | f32 | 投标量 |
所有字段都是大端编码。
依赖项
~3–11MB
~106K SLoC