def sendOrder(self, symbol, direction, priceType, offset, price, volume):
        """发单"""
        self.reqID += 1
        self.orderRef += 1

        req = dict()

        req['InstrumentID'] = symbol
        req['LimitPrice'] = price
        req['VolumeTotalOriginal'] = volume
        
        req['OrderPriceType'] = priceType
        req['Direction'] = direction
        req['CombOffsetFlag'] = offset

        req['OrderRef'] = str(self.orderRef)
        req['InvestorID'] = self.userID
        req['UserID'] = self.userID
        req['BrokerID'] = self.brokerID
        
        req['CombHedgeFlag'] = defineDict['THOST_FTDC_HF_Speculation']       # 投机单
        req['ContingentCondition'] = defineDict['THOST_FTDC_CC_Immediately'] # 立即发单
        req['ForceCloseReason'] = defineDict['THOST_FTDC_FCC_NotForceClose'] # 非强平
        req['IsAutoSuspend'] = 0                                             # 非自动挂起
        req['TimeCondition'] = defineDict['THOST_FTDC_TC_GFD']               # 今日有效
        req['VolumeCondition'] = defineDict['THOST_FTDC_VC_AV']              # 任意成交量
        req['MinVolume'] = 1                                                 # 最小成交量为1
        
        self.reqOrderInsert(req, self.reqID)

        logger.debug('insert new order:%s'%req)
        
        return str(self.orderRef)
 def onRtnTrade(self, data):
     """成交回报"""
     logger.debug(u'成交回报, onRtnTrade,%s'%data.get('StatusMsg', '').decode('gbk'))
     self._server.onTrade(data)