[Add]增加更多的资源类型
This commit is contained in:
parent
3a9ebc1bfa
commit
64c63c9c5d
@ -35,7 +35,7 @@ api = Api(app)
|
|||||||
|
|
||||||
# 创建资源
|
# 创建资源
|
||||||
########################################################################
|
########################################################################
|
||||||
class Gateways(Resource):
|
class Gateway(Resource):
|
||||||
"""接口"""
|
"""接口"""
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
@ -60,7 +60,7 @@ class Gateways(Resource):
|
|||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
class Orders(Resource):
|
class Order(Resource):
|
||||||
"""委托"""
|
"""委托"""
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
@ -89,7 +89,7 @@ class Orders(Resource):
|
|||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
class Trades(Resource):
|
class Trade(Resource):
|
||||||
"""成交"""
|
"""成交"""
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
@ -101,44 +101,74 @@ class Trades(Resource):
|
|||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
class Accounts(Resource):
|
class Account(Resource):
|
||||||
"""账户"""
|
"""账户"""
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def get(self):
|
def get(self):
|
||||||
"""查询"""
|
"""查询"""
|
||||||
pass
|
data = me.getAllAccounts()
|
||||||
|
l = {o.__dict__ for o in data}
|
||||||
|
return l
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
class Positions(Resource):
|
class Position(Resource):
|
||||||
"""持仓"""
|
"""持仓"""
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def get(self):
|
def get(self):
|
||||||
"""查询"""
|
"""查询"""
|
||||||
pass
|
data = me.getAllPositions()
|
||||||
|
l = {o.__dict__ for o in data}
|
||||||
|
return l
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
class Contracts(Resource):
|
class Contract(Resource):
|
||||||
"""合约"""
|
"""合约"""
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def get(self):
|
def get(self):
|
||||||
"""查询"""
|
"""查询"""
|
||||||
pass
|
data = me.getAllContracts()
|
||||||
|
l = {o.__dict__ for o in data}
|
||||||
|
return l
|
||||||
|
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
class Log(Resource):
|
||||||
|
"""日志"""
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def get(self):
|
||||||
|
"""查询"""
|
||||||
|
data = me.getLog()
|
||||||
|
l = {o.__dict__ for o in data}
|
||||||
|
return l
|
||||||
|
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
class Error(Resource):
|
||||||
|
"""错误"""
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def get(self):
|
||||||
|
"""查询"""
|
||||||
|
data = me.getError()
|
||||||
|
l = {o.__dict__ for o in data}
|
||||||
|
return l
|
||||||
|
|
||||||
|
|
||||||
# 注册资源
|
# 注册资源
|
||||||
api.add_resource(Gateways, '/gateways')
|
api.add_resource(Gateway, '/gateway')
|
||||||
api.add_resource(Orders, '/orders')
|
api.add_resource(Order, '/order')
|
||||||
api.add_resource(Trades, '/trades')
|
api.add_resource(Trade, '/trades')
|
||||||
api.add_resource(Accounts, '/accounts')
|
api.add_resource(Account, '/account')
|
||||||
api.add_resource(Positions, '/positions')
|
api.add_resource(Position, '/position')
|
||||||
api.add_resource(Contracts, '/contracts')
|
api.add_resource(Contract, '/contract')
|
||||||
|
api.add_resource(Log, '/log')
|
||||||
|
api.add_resource(Error, '/error')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -299,6 +299,16 @@ class MainEngine(object):
|
|||||||
"""查询所有成交"""
|
"""查询所有成交"""
|
||||||
return self.dataEngine.getAllTrades()
|
return self.dataEngine.getAllTrades()
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def getAllAccounts(self):
|
||||||
|
"""查询所有账户"""
|
||||||
|
return self.dataEngine.getAllAccounts()
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def getAllPositions(self):
|
||||||
|
"""查询所有持仓"""
|
||||||
|
return self.dataEngine.getAllPositions()
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def getAllPositionDetails(self):
|
def getAllPositionDetails(self):
|
||||||
"""查询本地持仓缓存细节"""
|
"""查询本地持仓缓存细节"""
|
||||||
@ -360,6 +370,16 @@ class MainEngine(object):
|
|||||||
"""转换委托请求"""
|
"""转换委托请求"""
|
||||||
return self.dataEngine.convertOrderReq(req)
|
return self.dataEngine.convertOrderReq(req)
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def getLog(self):
|
||||||
|
"""查询日志"""
|
||||||
|
return self.dataEngine.getLog()
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def getError(self):
|
||||||
|
"""查询错误"""
|
||||||
|
return self.dataEngine.getError()
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
class DataEngine(object):
|
class DataEngine(object):
|
||||||
@ -374,17 +394,15 @@ class DataEngine(object):
|
|||||||
"""Constructor"""
|
"""Constructor"""
|
||||||
self.eventEngine = eventEngine
|
self.eventEngine = eventEngine
|
||||||
|
|
||||||
# 保存合约详细信息的字典
|
# 保存数据的字典和列表
|
||||||
self.contractDict = {}
|
self.contractDict = {}
|
||||||
|
|
||||||
# 保存委托数据的字典
|
|
||||||
self.orderDict = {}
|
self.orderDict = {}
|
||||||
|
self.workingOrderDict = {} # 可撤销委托
|
||||||
# 保存成交数据的字典
|
|
||||||
self.tradeDict = {}
|
self.tradeDict = {}
|
||||||
|
self.accountDict = {}
|
||||||
# 保存活动委托数据的字典(即可撤销)
|
self.positionDict= {}
|
||||||
self.workingOrderDict = {}
|
self.logList = []
|
||||||
|
self.errorList = []
|
||||||
|
|
||||||
# 持仓细节相关
|
# 持仓细节相关
|
||||||
self.detailDict = {} # vtSymbol:PositionDetail
|
self.detailDict = {} # vtSymbol:PositionDetail
|
||||||
@ -403,6 +421,9 @@ class DataEngine(object):
|
|||||||
self.eventEngine.register(EVENT_ORDER, self.processOrderEvent)
|
self.eventEngine.register(EVENT_ORDER, self.processOrderEvent)
|
||||||
self.eventEngine.register(EVENT_TRADE, self.processTradeEvent)
|
self.eventEngine.register(EVENT_TRADE, self.processTradeEvent)
|
||||||
self.eventEngine.register(EVENT_POSITION, self.processPositionEvent)
|
self.eventEngine.register(EVENT_POSITION, self.processPositionEvent)
|
||||||
|
self.eventEngine.register(EVENT_ACCOUNT, self.processAccountEvent)
|
||||||
|
self.eventEngine.register(EVENT_LOG, self.processLogEvent)
|
||||||
|
self.eventEngine.register(EVENT_ERROR, self.processErrorEvent)
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def processContractEvent(self, event):
|
def processContractEvent(self, event):
|
||||||
@ -442,11 +463,31 @@ class DataEngine(object):
|
|||||||
def processPositionEvent(self, event):
|
def processPositionEvent(self, event):
|
||||||
"""处理持仓事件"""
|
"""处理持仓事件"""
|
||||||
pos = event.dict_['data']
|
pos = event.dict_['data']
|
||||||
|
|
||||||
|
self.positionDict[pos.vtPositionName] = pos
|
||||||
|
|
||||||
# 更新到持仓细节中
|
# 更新到持仓细节中
|
||||||
detail = self.getPositionDetail(pos.vtSymbol)
|
detail = self.getPositionDetail(pos.vtSymbol)
|
||||||
detail.updatePosition(pos)
|
detail.updatePosition(pos)
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def processAccountEvent(self, event):
|
||||||
|
"""处理账户事件"""
|
||||||
|
account = event.dict_['data']
|
||||||
|
self.accountDict[account.vtAccountID] = account
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def processLogEvent(self, event):
|
||||||
|
"""处理日志事件"""
|
||||||
|
log = event.dict_['data']
|
||||||
|
self.logList.append(log)
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def processErrorEvent(self, event):
|
||||||
|
"""处理错误事件"""
|
||||||
|
error = event.dict_['data']
|
||||||
|
self.errorList.append(error)
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def getContract(self, vtSymbol):
|
def getContract(self, vtSymbol):
|
||||||
"""查询合约对象"""
|
"""查询合约对象"""
|
||||||
@ -498,7 +539,17 @@ class DataEngine(object):
|
|||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def getAllTrades(self):
|
def getAllTrades(self):
|
||||||
"""获取所有成交"""
|
"""获取所有成交"""
|
||||||
return self.tradeDict.values()
|
return self.tradeDict.values()
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def getAllPositions(self):
|
||||||
|
"""获取所有持仓"""
|
||||||
|
return self.positionDict.values()
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def getAllAccounts(self):
|
||||||
|
"""获取所有资金"""
|
||||||
|
return self.accountDict.values()
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def getPositionDetail(self, vtSymbol):
|
def getPositionDetail(self, vtSymbol):
|
||||||
@ -549,6 +600,16 @@ class DataEngine(object):
|
|||||||
else:
|
else:
|
||||||
return detail.convertOrderReq(req)
|
return detail.convertOrderReq(req)
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def getLog(self):
|
||||||
|
"""获取日志"""
|
||||||
|
return self.logList
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------
|
||||||
|
def getError(self):
|
||||||
|
"""获取错误"""
|
||||||
|
return self.errorList
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
class LogEngine(object):
|
class LogEngine(object):
|
||||||
@ -651,7 +712,7 @@ class LogEngine(object):
|
|||||||
function = self.levelFunctionDict[log.logLevel] # 获取日志级别对应的处理函数
|
function = self.levelFunctionDict[log.logLevel] # 获取日志级别对应的处理函数
|
||||||
msg = '\t'.join([log.gatewayName, log.logContent])
|
msg = '\t'.join([log.gatewayName, log.logContent])
|
||||||
function(msg)
|
function(msg)
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
class PositionDetail(object):
|
class PositionDetail(object):
|
||||||
|
Loading…
Reference in New Issue
Block a user