Expand description
§ek-data —— enkeep ek 生态的交易数据契约
Python 原稿:enkeep_trade/enkeep_trade/trader/constant.py(枚举,207 行)
与 enkeep_trade/enkeep_trade/trader/object.py(数据对象,819 行)。
§全局决定(DESIGN.md 有全文)
- 一个结构体一个文件:每个 struct + 它的 inherent 方法内聚单文件;
枚举不是结构体,群聚在
constant一处。 - 派生 ID 方法化:Python 靠
__post_init__把en_symbol / en_orderid / en_positionid / available算成暂存字段,Rust 版一律方法即时计算, 不存冗余状态,不存在不同步。 - 枚举线值用英文令牌(
LONG / OPEN / ALLTRADED ...),FromStr额外容忍 Python 时代的中文线值("多" / "开" ...), 新存档写英文、旧归档照读。例外:交易所名以 Python.value为准 (CBOT线值为CBT,EUREX线值为EUX,ETF_INDEX线值为ETF_index)。 - 零依赖底线:default 路径没有任何依赖;时间用自带 civil↔epoch 换算
(不走 chrono);
serde为 optional feature(default off)。 - 对象层零 IO 零锁:数据对象只做纯读写与纯函数,复杂决策归插件层。
§Python → Rust 对照总表
| Python(constant.py / object.py) | Rust |
|---|---|
constant.py:8 Direction | constant::Direction |
constant.py:18 Offset | constant::Offset |
constant.py:30 Status | constant::Status |
constant.py:43 Asset | constant::Asset |
constant.py:69 InstrumentType | constant::InstrumentType |
constant.py:100 OrderType | constant::OrderType |
constant.py:113 OptionType | constant::OptionType |
constant.py:122 Exchange | constant::Exchange |
constant.py:184 Currency | constant::Currency |
constant.py:195 Interval | constant::Interval |
object.py:21 ACTIVE_STATUSES | constant::ACTIVE_STATUSES |
object.py:37 TickData | tick::TickData |
object.py:123 BarData | bar::BarData |
object.py:152 OrderData | order::OrderData |
object.py:199 TradeData | trade::TradeData |
object.py:235 PositionData | position::PositionData |
object.py:268 AccountData | account::AccountData |
object.py:286 LogData | log::LogData |
object.py:340 ContractData | contract::ContractData |
object.py:507 SubscribeRequest | subscribe_request::SubscribeRequest |
object.py:521 OrderRequest | order_request::OrderRequest |
object.py:592 CancelRequest | cancel_request::CancelRequest |
object.py:607 HistoryRequest | history_request::HistoryRequest |
object.py:25 BaseData(gateway_name 基座) | 各对象直接携带 gateway_name 字段(不引入继承) |
event.py:7-24 字面常量 | event 模块的 8 个 EVENT_* 常量 |
__post_init__ 暂存 en_symbol | en_symbol() 派生方法(全局决定 2) |
utility.py extract_vt_symbol | symbol::parse_vt_symbol |
defer 清单(属 UI/组合/通知批次,共识另立):QuoteData / QuoteRequest / HedgeContractData / ContractData2 / ProductInfo / HedgeSetting / StockData / SectorData / KlineChartData / NotifyData / AlertData。 BarData 的股票估值四件套(pe/pb/float_mv/total_mv)按共识移除,持久层立项时另设。
Re-exports§
pub use account::AccountData;pub use bar::BarData;pub use event::EVENT_ACCOUNT;pub use event::EVENT_BAR;pub use event::EVENT_CONTRACT;pub use event::EVENT_LOG;pub use event::EVENT_ORDER;pub use event::EVENT_POSITION;pub use event::EVENT_TICK;pub use event::EVENT_TRADE;pub use cancel_request::CancelRequest;pub use constant::Asset;pub use constant::Currency;pub use constant::Direction;pub use constant::EnumParseError;pub use constant::Exchange;pub use constant::InstrumentType;pub use constant::Interval;pub use constant::Offset;pub use constant::OptionType;pub use constant::OrderType;pub use constant::Status;pub use constant::ACTIVE_STATUSES;pub use contract::ContractData;pub use history_request::HistoryRequest;pub use log::LogData;pub use log::LEVEL_ERROR;pub use log::LEVEL_INFO;pub use log::LEVEL_WARNING;pub use order::OrderData;pub use order_request::OrderRequest;pub use position::PositionData;pub use subscribe_request::SubscribeRequest;pub use symbol::parse_vt_symbol;pub use symbol::vt_symbol;pub use symbol::SymbolError;pub use tick::TickData;pub use time::civil_from_nanos;pub use time::civil_to_nanos;pub use time::format_civil;pub use time::from_system_time;pub use time::now_nanos;pub use time::trading_day;pub use time::Civil;pub use time::DtNs;pub use time::Day;pub use trade::TradeData;
Modules§
- account
- 账户对象(
object.py:268-282)。 - bar
- K 线对象(
object.py:123-148;公共字段版——股票估值四件套 pe/pb/float_mv/total_mv 按共识移除,持久层批次另立)。 - cancel_
request - 撤单请求(
object.py:592-604;通常由crate::order::OrderData::create_cancel_request生成)。 - constant
- 一般交易常量枚举。
- contract
- 合约对象(
object.py:340-368)。 - event
- 总线事件字典:enkeep 原稿
trader/event.py的字面常量移植。 - history_
request - 历史数据查询请求(
object.py:607-621)。 - log
- 日志对象(
object.py:286-296)。 - order
- 委托对象(
object.py:152-196;含迅投 XtOrder 扩展字段)。 - order_
request - 下单请求(
object.py:521-588+ 方法四件套)。 - position
- 持仓对象(
object.py:235-264;含迅投 XtPosition 扩展字段)。 - subscribe_
request - 订阅请求(
object.py:507-518)。 - symbol
- vt_symbol 约定:
"<exchange>.<symbol>"(如CFFEX.IF2506)。 - tick
- 行情逐笔快照(
object.py:37-119,字段逐值复刻 + 方法三层)。 - time
- 零依赖时间面:纪元纳秒 ↔ civil(年月日时分秒)双向换算。
- trade
- 成交对象(
object.py:199-232;含迅投 XtTrade 扩展字段)。