6 个版本

0.2.3 2023 年 3 月 11 日
0.2.2 2022 年 12 月 21 日
0.1.1 2022 年 12 月 15 日

2209命令行工具

每月 35 次下载

MIT 许可证

50KB
244

GitHub release (latest SemVer including pre-releases) GitHub Latest Version
Lib.rs Docs.rs CI Changelog Star

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