Skip to main content

Crate ek_data

Crate ek_data 

Source
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 有全文)

  1. 一个结构体一个文件:每个 struct + 它的 inherent 方法内聚单文件; 枚举不是结构体,群聚在 constant 一处。
  2. 派生 ID 方法化:Python 靠 __post_init__ 把 en_symbol / en_orderid / en_positionid / available 算成暂存字段,Rust 版一律方法即时计算, 不存冗余状态,不存在不同步。
  3. 枚举线值用英文令牌(LONG / OPEN / ALLTRADED ...), FromStr 额外容忍 Python 时代的中文线值("多" / "开" ...), 新存档写英文、旧归档照读。例外:交易所名以 Python .value 为准 (CBOT 线值为 CBT,EUREX 线值为 EUX,ETF_INDEX 线值为 ETF_index)。
  4. 零依赖底线:default 路径没有任何依赖;时间用自带 civil↔epoch 换算 (不走 chrono);serde 为 optional feature(default off)。
  5. 对象层零 IO 零锁:数据对象只做纯读写与纯函数,复杂决策归插件层。

§Python → Rust 对照总表

Python(constant.py / object.py)Rust
constant.py:8 Directionconstant::Direction
constant.py:18 Offsetconstant::Offset
constant.py:30 Statusconstant::Status
constant.py:43 Assetconstant::Asset
constant.py:69 InstrumentTypeconstant::InstrumentType
constant.py:100 OrderTypeconstant::OrderType
constant.py:113 OptionTypeconstant::OptionType
constant.py:122 Exchangeconstant::Exchange
constant.py:184 Currencyconstant::Currency
constant.py:195 Intervalconstant::Interval
object.py:21 ACTIVE_STATUSESconstant::ACTIVE_STATUSES
object.py:37 TickDatatick::TickData
object.py:123 BarDatabar::BarData
object.py:152 OrderDataorder::OrderData
object.py:199 TradeDatatrade::TradeData
object.py:235 PositionDataposition::PositionData
object.py:268 AccountDataaccount::AccountData
object.py:286 LogDatalog::LogData
object.py:340 ContractDatacontract::ContractData
object.py:507 SubscribeRequestsubscribe_request::SubscribeRequest
object.py:521 OrderRequestorder_request::OrderRequest
object.py:592 CancelRequestcancel_request::CancelRequest
object.py:607 HistoryRequesthistory_request::HistoryRequest
object.py:25 BaseData(gateway_name 基座)各对象直接携带 gateway_name 字段(不引入继承)
event.py:7-24 字面常量event 模块的 8 个 EVENT_* 常量
__post_init__ 暂存 en_symbolen_symbol() 派生方法(全局决定 2)
utility.py extract_vt_symbolsymbol::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 扩展字段)。