MT5CTP项目受到大家的极大关注和积极测试、应用,始料未及。朋友们都反映积累了海量的mt4源代码,做mt5的代码转换都有点吃力,更不用说再修改到适配MT5CTP项目来直接驱动国内期货交易。源代码的最少改动原则是本项目初始的设计目标之一,当时是基于mt5源代码考虑,更多的朋友建议:目标应该是适配mt4源代码。好吧,回归项目初心,继续努力:MT4代码适配器(CTPMQL4)来了。
逻辑上,CTPMQL4是记录EA的持仓(报单)明细,MT5CTP是记录持仓汇总。持仓明细和持仓汇总之间需要对账,这是非常困难的,因为MT5CTP是一个开放的系统,持仓可以手动平仓,也可以外部软件平仓,CTPMQL4的持仓明细对此并不知情,CTPMQL4持仓明细更像是封闭系统。后来朋友们建议,在完美适配和海量代码的交易驱动之间选择,后者更为核心。
CTPMQL4记录持仓明细,并根据订单的状态自动更新,还需要做数据持久化,为此我们使用了数据库来达到这个目标,因为数据库操作关系持仓记录的安全和准确,所以如果数据库操作错误,CTPMQL4会发出Alert警告。数据库中数据表结构如下: