
这里说一个大家不常用的三个方法吧,委托,成交,撤单。
大部分开发同学仅仅是做到了回测这个步骤,这个步骤很好理解,就是通过对历史数据的运行来检查当前程序是否可以挣钱,统计历史数据,利润,最大回测等数值都还是很有参考意义的。
委托,成交,撤单,这三个是在实盘中才会用到,委托是下单的回调,成交是委托的回调,撤单是程序发起的,但需要用户自动做判断
委托和程序需要在程序里设定好交易的账号
def init(ContextInfo):
ContextInfo.set_account('*******')
设定好后会自动回调委托:
def order_callback(ContextInfo, orderInfo):
print("委托交易Id:" + orderInfo.m_strOrderSysID)
回调交易:
def deal_callback(ContextInfo, dealInfo):
print("完成一笔交易:" + str(dealInfo.m_strOrderSysID))r
所有交易结果的清算应该在交易完成后进行,记录委托的作用是为了撤单使用。
若委托完成后,长时间未成交,则需要撤单。

一个简要的流程图来说明各个阶段的状态。对于撤单功能,则是发起一个定时任务,每10秒钟检查一下,若仍没有成交则进行撤单。
定时任务注册功能如下:
#撤单定时任务
ContextInfo.run_time('cancel_order_timer','10nSecond','2026-03-14T12:08:19+00:00')
参照这些功能边开发边测试了一只股票的程序交易,交易成果如下:

挣了大约14元。估计手续费大约是在5元左右。400股有10元的收益吧。下周再继续完善算法和交易流程。
