Exemple #1
0
 def Req_OrderInsert(self, broker_id, investor_id):
     data = KSUserApiStruct.CThostFtdcInputOrderField()
     #经纪公司代码
     data.BrokerID = broker_id
     #投资者代码
     data.InvestorID = investor_id
     #合约代码
     data.InstrumentID = "IF1312"  #instrument_id
     #报单引用
     data.OrderRef = "9"
     #报单价格条件: 限价
     data.OrderPriceType = KSUserApiType.THOST_FTDC_OPT_LimitPrice
     #买卖方向:
     data.Direction = KSUserApiType.THOST_FTDC_D_Buy
     #组合开平标志: 开仓
     data.CombOffsetFlag = KSUserApiType.THOST_FTDC_OF_Open
     #组合投机套保标志
     data.CombHedgeFlag = KSUserApiType.THOST_FTDC_HF_Speculation
     #价格
     data.LimitPrice = 2450
     #数量: 1
     data.VolumeTotalOriginal = 1
     #有效期类型: 当日有效
     data.TimeCondition = KSUserApiType.THOST_FTDC_TC_GFD
     #成交量类型: 任何数量
     data.VolumeCondition = KSUserApiType.THOST_FTDC_VC_AV
     #最小成交量: 0
     data.MinVolume = 0
     #触发条件: 立即
     data.ContingentCondition = KSUserApiType.THOST_FTDC_CC_Immediately
     #强平原因: 非强平
     data.ForceCloseReason = KSUserApiType.THOST_FTDC_FCC_NotForceClose
     #自动挂起标志: 否
     data.IsAutoSuspend = 0
     #请求编号
     data.RequestID = self.requestid
     #用户强评标志: 否
     data.UserForceClose = 0
     self.requestid += 1
     print repr(data)
     r = self.api.ReqOrderInsert(data, self.requestid)
     if r == 0: print u"报单录入请求: 成功\n"
     else: print u"报单录入请求: 失败\n"
Exemple #2
0
    def inputOrderField(self, broker_id, investor_id, instrument_id, volume,
                        limitPrice, orderPriceType, direction, combOffSetFlag,
                        combHedgeFlag):
        data = KSUserApiStruct.CThostFtdcInputOrderField()
        #经纪公司代码
        data.BrokerID = broker_id
        #投资者代码
        data.InvestorID = investor_id
        #合约代码
        data.InstrumentID = instrument_id
        #instrument_id
        #报单引用
        data.OrderRef = self.orderRef
        #报单价格条件: 限价
        data.OrderPriceType = orderPriceType
        #买卖方向:
        data.Direction = direction
        #组合开平标志: 开仓
        data.CombOffsetFlag = combOffSetFlag
        #组合投机套保标志
        data.CombHedgeFlag = combHedgeFlag
        #价格
        data.LimitPrice = limitPrice
        #数量: 1
        data.VolumeTotalOriginal = volume
        #有效期类型: 当日有效
        data.TimeCondition = KSUserApiType.THOST_FTDC_TC_GFD
        #成交量类型: 任何数量
        data.VolumeCondition = KSUserApiType.THOST_FTDC_VC_AV
        #最小成交量: 0
        data.MinVolume = 0
        #触发条件: 立即
        data.ContingentCondition = KSUserApiType.THOST_FTDC_CC_Immediately
        #强平原因: 非强平
        data.ForceCloseReason = KSUserApiType.THOST_FTDC_FCC_NotForceClose
        #自动挂起标志: 否
        data.IsAutoSuspend = 0
        #请求编号
        self.spi.requestid += 1
        data.RequestID = self.spi.requestid
        #用户强评标志: 否
        data.UserForceClose = 0
        #用户强评标志: 否
        data.UserForceClose = 0

        #continue to insert to the table of tradingRecord
        connection = pymongo.Connection('localhost', 27017)
        db = connection.commodityTrading
        res = {
            "InvestorID": data.InvestorID,
            "BrokerID": data.BrokerID,
            "StrategyName": self.strategyName,
            "OrderRef": self.orderRef,
            "TradingDay": self.tradingDay,
            "Volume": data.VolumeTotalOriginal,
            "InstrumentID": data.InstrumentID,
            "Direction": data.Direction,
            "OrderPriceType": data.OrderPriceType,
            "CombOffsetFlag": data.CombOffsetFlag
        }
        db.tradingRecord.insert(res)
        return data