vnpy/examples/WebTrader/run.py

176 lines
4.6 KiB
Python
Raw Normal View History

2018-01-21 07:36:48 +00:00
# encoding: UTF-8
# 修改编码
import sys
reload(sys)
sys.setdefaultencoding('utf8')
# 创建主引擎代理对象
from vnpy.event import EventEngine2
from vnpy.trader.vtEvent import EVENT_LOG
from vnpy.trader.app.rpcService.rsClient import MainEngineProxy
reqAddress = 'tcp://localhost:2014'
subAddress = 'tcp://localhost:0602'
ee = EventEngine2()
me = MainEngineProxy(ee)
me.init(reqAddress, subAddress)
#----------------------------------------------------------------------
def printLog(event):
"""打印日志"""
log = event.dict_['data']
print log.logTime, log.logContent
ee.register(EVENT_LOG, printLog)
# 创建Flask对象
from flask import Flask
from flask.ext.restful import Api, Resource, reqparse
app = Flask(__name__)
api = Api(app)
# 创建资源
########################################################################
2018-01-21 08:07:48 +00:00
class Gateway(Resource):
2018-01-21 07:36:48 +00:00
"""接口"""
#----------------------------------------------------------------------
def __init__(self):
"""初始化"""
self.parser = reqparse.RequestParser()
self.parser.add_argument('name')
super(Gateways, self).__init__()
#----------------------------------------------------------------------
def get(self):
"""查询"""
l = me.getAllGatewayDetails()
return l
#----------------------------------------------------------------------
def post(self):
"""连接"""
args = self.parser.parse_args()
name = args['name']
me.connect(name)
########################################################################
2018-01-21 08:07:48 +00:00
class Order(Resource):
2018-01-21 07:36:48 +00:00
"""委托"""
#----------------------------------------------------------------------
def __init__(self):
"""初始化"""
self.parser = reqparse.RequestParser()
self.parser.add_argument('name')
super(Gateways, self).__init__()
#----------------------------------------------------------------------
def get(self):
"""查询"""
data = me.getAllOrders()
l = {o.__dict__ for o in data}
return l
#----------------------------------------------------------------------
def post(self):
"""发单"""
pass
#----------------------------------------------------------------------
def delete(self):
"""撤单"""
pass
########################################################################
2018-01-21 08:07:48 +00:00
class Trade(Resource):
2018-01-21 07:36:48 +00:00
"""成交"""
#----------------------------------------------------------------------
def get(self):
"""查询"""
data = me.getAllTrades()
l = {o.__dict__ for o in data}
return l
########################################################################
2018-01-21 08:07:48 +00:00
class Account(Resource):
2018-01-21 07:36:48 +00:00
"""账户"""
#----------------------------------------------------------------------
def get(self):
"""查询"""
2018-01-21 08:07:48 +00:00
data = me.getAllAccounts()
l = {o.__dict__ for o in data}
return l
2018-01-21 07:36:48 +00:00
########################################################################
2018-01-21 08:07:48 +00:00
class Position(Resource):
2018-01-21 07:36:48 +00:00
"""持仓"""
#----------------------------------------------------------------------
def get(self):
"""查询"""
2018-01-21 08:07:48 +00:00
data = me.getAllPositions()
l = {o.__dict__ for o in data}
return l
2018-01-21 07:36:48 +00:00
########################################################################
2018-01-21 08:07:48 +00:00
class Contract(Resource):
2018-01-21 07:36:48 +00:00
"""合约"""
#----------------------------------------------------------------------
def get(self):
"""查询"""
2018-01-21 08:07:48 +00:00
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
2018-01-21 07:36:48 +00:00
2018-01-21 08:07:48 +00:00
########################################################################
class Error(Resource):
"""错误"""
2018-01-21 07:36:48 +00:00
2018-01-21 08:07:48 +00:00
#----------------------------------------------------------------------
def get(self):
"""查询"""
data = me.getError()
l = {o.__dict__ for o in data}
return l
2018-01-21 07:36:48 +00:00
# 注册资源
2018-01-21 08:07:48 +00:00
api.add_resource(Gateway, '/gateway')
api.add_resource(Order, '/order')
api.add_resource(Trade, '/trades')
api.add_resource(Account, '/account')
api.add_resource(Position, '/position')
api.add_resource(Contract, '/contract')
api.add_resource(Log, '/log')
api.add_resource(Error, '/error')
2018-01-21 07:36:48 +00:00
if __name__ == '__main__':
app.run(debug=True)