模块 | 说明 |
---|---|
市场数据 | 管理并获取序列化的实时和历史行情并更新市场信息 |
市场信息 | 存储市场交易品种的基本属性及最新询价(Tick)等 |
交易接口 | 执行交易,获取资金信息,仓位信息,订单信息 |
分析模块 | 方便对数据进行分析,如指标分析等,用于指导交易 |
策略模块 | 综合决策模块,调用其它模块完成自动化交易 |
接口文件: MarketData.h
java
/** @brief Tick结构定义 */ struct Tick { uint64_t time; /*< 最近更新时间 */ uint32_t time_ms; /*< 以毫秒为单位的最近更新时间 */ double bid; /*< 当前买入价 */ double ask; /*< 当前卖出价 */ double last; /*< 最近交易价格 */ uint32_t bid_volume; /*< 当前买价量 */ uint32_t ask_volume; /*< 当前卖价量 */ uint64_t volume; /*< 最近交易量 */ double openinterest; /*< 持仓量 */ }; /** @brief 行情Bar定义 */ struct Bar { uint64_t time; /*< 时间截 */ double open; /*< 开盘价 */ double close; /*< 收盘价 */ double high; /*< 最高价 */ double low; /*< 最低价 */ uint64_t volume; /*< 成交量 */ double openinterest; /*< 持仓量 */ };
Tick:json
时间戳 | 毫秒 | 买价 | 卖价 | 最近成交价 | bid量 | ask量 | 成交量 | 持仓量 |
---|---|---|---|---|---|---|---|---|
time | time_ms | bid | ask | last | bid_volume | ask_volume | volume | openinterest |
Bar:服务器
时间戳 | 开盘价 | 收盘价 | 最高价 | 最低价 | 成交量 | 持仓量 |
---|---|---|---|---|---|---|
time | open | close | high | low | volume | interest |
Tick中须要ask与bid主要是考虑到回测须要(撮合成交通常取bid, ask, last的中间价格),目前只定义了一档价格。架构
市场数据模块主要提供如下只大功能:框架
功能 | 说明 |
---|---|
登陆登出 | 远程市场数据服务器的登陆与登出操做 |
参数设置 | 设置模块所须要的参数,如服务器地址 |
数据订阅 | 根据品种订阅市场数据服务器的数据 |
数据钩子 | 对于服务器推送的实时数据采用数据钩子的方式处理 |
数据获取 | 提供灵活的数据获取方式,如经过倒序索引,时间等 |
数据整合 | 对于数据源(如历史如数等)进行整合,可经过当前统一接口获取 |
模块状态 | 提供当前模块的工做状态信息 |
策略模块启动流程:函数
避免由于增长接口而形成版本不兼容ui
{ "Modules": [ { "name": "itap", "enable": true, "path": "itap.dll" } ], "Framework": { "name":"OneTrader", "marketdata": { "name":"itap_marketdata", "module":"itap", "login":false, "params":{ "server":"61.163.243.173", "port": 8383, "user": "no", "passwd": "onetrader" } }, "marketinfo": { "name": "itap_marketinfo", "module": "itap" }, "trader": { "name": "itap", "module": "itap", "auth": true, "login": true, "params": { "server":"61.163.243.173", "port": 8383, } } }, "OneTrader":{ "loglevel": 0 } }