1.增加日志

2.持仓窗口,支持多账户分开显示
This commit is contained in:
msincenselee 2017-06-09 23:55:14 +08:00
parent 3d357706f7
commit 88cd5f3c61

View File

@ -109,10 +109,16 @@ class CtpGateway(VtGateway):
path = os.path.abspath(os.path.dirname(__file__)) path = os.path.abspath(os.path.dirname(__file__))
fileName = os.path.join(path, fileName) fileName = os.path.join(path, fileName)
if self.mdApi is None: if self.mdApi is None:
self.writeLog(u'行情接口未实例化,创建实例')
self.mdApi = CtpMdApi(self) # 行情API self.mdApi = CtpMdApi(self) # 行情API
else:
self.writeLog(u'行情接口已实例化')
if self.tdApi is None: if self.tdApi is None:
self.writeLog(u'交易接口未实例化,创建实例')
self.tdApi = CtpTdApi(self) # 交易API self.tdApi = CtpTdApi(self) # 交易API
else:
self.writeLog(u'交易接口已实例化')
try: try:
f = file(fileName) f = file(fileName)
except IOError: except IOError:
@ -142,11 +148,16 @@ class CtpGateway(VtGateway):
return return
# 创建行情和交易接口对象 # 创建行情和交易接口对象
self.writeLog(u'连接行情服务器')
self.mdApi.connect(userID, password, brokerID, mdAddress) self.mdApi.connect(userID, password, brokerID, mdAddress)
self.tdApi.connect(userID, password, brokerID, tdAddress,authCode, userProductInfo) self.writeLog(u'连接交易服务器')
self.tdApi.connect(userID, password, brokerID, tdAddress, authCode, userProductInfo)
self.setQryEnabled(True)
# 初始化并启动查询 # 初始化并启动查询
self.initQuery() self.initQuery()
for req in self.subscribedSymbols:
self.mdApi.subscribe(req)
#---------------------------------------------------------------------- #----------------------------------------------------------------------
def subscribe(self, subscribeReq): def subscribe(self, subscribeReq):
@ -326,8 +337,6 @@ class CtpMdApi(MdApi):
self.gateway.mdConnected = True self.gateway.mdConnected = True
self.writeLog(text.DATA_SERVER_LOGIN) self.writeLog(text.DATA_SERVER_LOGIN)
# 重新订阅之前订阅的合约 # 重新订阅之前订阅的合约
if len(self.subscribedSymbols) > 0:
print u'ctpMdApi.onRspUserLoginResubscribe Symbols:{0}'.format(self.subscribedSymbols)
for subscribeReq in self.subscribedSymbols: for subscribeReq in self.subscribedSymbols:
self.subscribe(subscribeReq) self.subscribe(subscribeReq)
@ -346,7 +355,7 @@ class CtpMdApi(MdApi):
# 如果登出成功,推送日志信息 # 如果登出成功,推送日志信息
if error['ErrorID'] == 0: if error['ErrorID'] == 0:
self.loginStatus = False self.loginStatus = False
self.gateway.tdConnected = False self.gateway.mdConnected = False
self.writeLog(text.DATA_SERVER_LOGOUT) self.writeLog(text.DATA_SERVER_LOGOUT)
@ -763,7 +772,7 @@ class CtpTdApi(TdApi):
pos.symbol = data['InstrumentID'] pos.symbol = data['InstrumentID']
pos.vtSymbol = pos.symbol pos.vtSymbol = pos.symbol
pos.direction = posiDirectionMapReverse.get(data['PosiDirection'], '') pos.direction = posiDirectionMapReverse.get(data['PosiDirection'], '')
pos.vtPositionName = '.'.join([pos.vtSymbol, pos.direction]) pos.vtPositionName = '.'.join([pos.vtSymbol, pos.direction, pos.gatewayName])
# 针对上期所持仓的今昨分条返回(有昨仓、无今仓),读取昨仓数据 # 针对上期所持仓的今昨分条返回(有昨仓、无今仓),读取昨仓数据
if data['YdPosition'] and not data['TodayPosition']: if data['YdPosition'] and not data['TodayPosition']:
@ -798,6 +807,8 @@ class CtpTdApi(TdApi):
#---------------------------------------------------------------------- #----------------------------------------------------------------------
def onRspQryTradingAccount(self, data, error, n, last): def onRspQryTradingAccount(self, data, error, n, last):
"""资金账户查询回报""" """资金账户查询回报"""
self.gateway.mdConnected = True
account = VtAccountData() account = VtAccountData()
account.gatewayName = self.gatewayName account.gatewayName = self.gatewayName
@ -855,6 +866,8 @@ class CtpTdApi(TdApi):
#---------------------------------------------------------------------- #----------------------------------------------------------------------
def onRspQryInstrument(self, data, error, n, last): def onRspQryInstrument(self, data, error, n, last):
"""合约查询回报""" """合约查询回报"""
self.gateway.mdConnected = True
contract = VtContractData() contract = VtContractData()
contract.gatewayName = self.gatewayName contract.gatewayName = self.gatewayName