ek-data
enkeep ek 生态的交易数据契约 crate:交易所/方向/状态等类型枚举、
零依赖纪元纳秒时间面、十进制精确的价格取整、vt_symbol 标识约定、
总线事件字典,以及 tick/bar/order/trade/position/account/contract
与四个请求对象。
由 Python 原稿 enkeep_trade/trader/constant.py + trader/object.py
逐字段逐方法移植(对照表见 DESIGN.md 与 crate 文档)。
快速开始
[]
= "0.2"
# 需要 JSON 收发时:
# ek-data = { version = "0.2", features = ["serde"] }
use ;
// 标识约定:CFFEX.IF2506(交易所线值沿 Python .value,CBOT→CBT/EUREX→EUX)
assert_eq!;
// 价格对齐最小变动价位:十进制精确(朴素 f64 会把 floor(0.3/0.1) 算成 0.2)
assert_eq!;
assert_eq!; // half-even,同 Python round(Decimal)
// 订单与派生态
let mut order = OrderData ;
assert_eq!;
assert!; // SUBMITTING/NOTTRADED/PARTTRADED
order.status = ALLTRADED;
assert!;
// 时间:零依赖,i64 纪元纳秒(可表达 1677-09-21 .. 2262-04-11)
let t = parse_civil.unwrap;
assert_eq!;
// 逐 tick 热路径:复用缓冲,零分配拼 en_symbol
let tick = TickData ;
let mut buf = Stringwith_capacity;
tick.en_symbol_into;
assert_eq!;
设计要点
- 零依赖底线:default 路径无任何依赖;
serde是 optional feature(default off)。 - 一个结构体一个文件:改一个字段只动一个文件。
- 派生 ID 方法化:
en_symbol/en_orderid/en_positionid/available即时计算,不存冗余状态。 - 枚举线值:英文令牌为标准线值,
FromStr额外容忍 Python 时代中文旧值(「多」「开」…)。 - 价格工具是十进制精确的:
round_to/floor_to/ceil_to/get_digits对齐 PythonDecimal语义。
Feature
| feature | 作用 |
|---|---|
| (默认) | 纯 std,无依赖 |
serde |
结构体/枚举 JSON 序列化(字段名即 Python 字段名) |
许可
MIT