原创 +1银贝 期货CTP量化系列——撤单

小小的夏天 2023-11-10 221

撤单流程:

撤单是指客户将已报入CTP及交易所的单子申请撤销,流程图如下:

实盘流程展示:

撤单代码:

    # 撤单
    def cancelOrder(self, orderRef):
        orderfield = tdapi.CThostFtdcInputOrderActionField()
        orderfield.BrokerID = str(self.Account.broker_id)    # 经纪公司代码
        orderfield.UserID = str(self.Account.investor_id)    # 用户代码
        orderfield.InvestorID = str(self.Account.investor_id)    # 投资者代码

        orderfield.FrontID = g.frontID    # 前置编号
        orderfield.SessionID = g.sessionID    # 会话编号
        orderfield.InstrumentID = g.order_map[str(orderRef)].instrumentID    # 合约代码

        # 当前单号
        orderfield.OrderRef = str(orderRef)    # 报单引用

        # 操作标志
        orderfield.ActionFlag = '0'

        ret = g.tduserapi.ReqOrderAction(orderfield, 0)    # 发送请求
        if ret == 0:
            print('发送撤单成功!')
        else:
            print('发送撤单失败!')
            judge_ret(ret)
        return ret

官方文档参数讲解:

参数类型为CThostFtdcInputOrderActionField,这个类型有将近20个字段,同样也不都是必须的填写的。

目前撤单有两种方式: 第一种: 必填*1:FrontID + SessionID + OrderRef为一组,其中FrontID 和 SessionID在账号登录时获得

OrderRef是下单时自己设置,而且必须是递增的数字,下单时也会返回OrderRef

    ret, orderRef = ctp_api.insertOrder('cs2401', 'sellopen', 2910, 1)  # orderRef报单编号

第二种: OrderSysID(报单编号),虽然官方推荐使用,但是OrderSysID是程序自动

本主题为课程学员专享,成为股票量化投资课程学员后可免费阅读

成为学员

上传的附件:

最新回复 ( 0条评论 )


官方微信
码力十足学量化
Powered by Xiuno BBS 4.0.7

官方微信