CTP报单详解

发布时间 2023-09-10 20:59:01作者: C羽言
def OrderInsert(self, InstrumentID):
    print(">>>>>>报单录入请求")
    orderfield = api.CThostFtdcInputOrderField()
    orderfield.BrokerID = g.BrokerID  # *必填 经纪公司代码
    orderfield.InvestorID = g.InvesterID  # *必填 投资者代码

    orderfield.InstrumentID = "rb2310"  # *必填 合约代码
    orderfield.ExchangeID = "SHFE"  # *必填 交易所代码 这里查询本地字典获取
    orderfield.CombOffsetFlag = "0"  # *必填 开平标志。字符串0开仓,1平仓/平昨,3平今。除了上期所/能源中心外,不区分平今平昨,平仓统一使用THOST_FTDC_OF_Close(字符串1)。
    orderfield.Direction = "0"  # *必填 买卖方向。字符串0买1卖
    orderfield.OrderPriceType = "2"  # *必填 报单价格类型。字符串1市价2限价
    orderfield.LimitPrice = 3750  # 限价类型时 填写报单价格
    orderfield.VolumeTotalOriginal = 1  # *必填 数量
    orderfield.OrderRef = 0  # 可自定义或不填 最大报单引用

    # 以下一般不改
    orderfield.ContingentCondition = api.THOST_FTDC_CC_Immediately  # *必填 触发条件 这里填立即生效,另外还有损盈单,预埋单,条件单
    orderfield.TimeCondition = api.THOST_FTDC_TC_GFD  # *必填 有效期类型 这里填当日有效,另外还能设置FAK或FOK
    orderfield.VolumeCondition = api.THOST_FTDC_VC_AV  # *必填 成交量类型 这里填普通
    # 以下不用改
    orderfield.ForceCloseReason = api.THOST_FTDC_FCC_NotForceClose  # *必填 强平原因 不用改
    orderfield.IsAutoSuspend = 0  # *必填 自动挂起标志 不用改
    orderfield.CombHedgeFlag = "1"  # *必填 投机套保标志 多数投资者是'1' 表示为投机仓

    ret = self.tapi.ReqOrderInsert(orderfield, 0)
    if ret == 0:
        print('下单成功!')
    else:
        print(f'下单失败!')