CTP报单详解

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'下单失败!')

 

posted @   C羽言  阅读(343)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示