QMT量化平台交易接口如何定义全局环境?

导入xtquant库、aiohttp库、sanic库,设置访问路由为/xtquant/trade,运行的http端口为7800:

from xtquant import xtdata, xttrader, xtconstant
from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback
from xtquant.xttype import StockAccount
import aiohttp, random
from sanic import Sanic, Blueprint, response
 
api = Blueprint('xtquant', url_prefix='/xtquant/trade')
 
@api.listener('before_server_start')
async def before_server_start(app, loop):
    '''全局共享session'''
    global session, trader
    jar = aiohttp.CookieJar(unsafe=True)
    session = aiohttp.ClientSession(cookie_jar=jar, connector=aiohttp.TCPConnector(ssl=False))
    trader = Trader()
 
@api.listener('after_server_stop')
async def after_server_stop(app, loop):
    '''关闭session'''
    await session.close()
 
 
order_status = {
    xtconstant.ORDER_UNREPORTED: '未报',
    xtconstant.ORDER_WAIT_REPORTING: '待报',
    xtconstant.ORDER_REPORTED: '已报',
    xtconstant.ORDER_REPORTED_CANCEL: '已报待撤',
    xtconstant.ORDER_PARTSUCC_CANCEL: '部成待撤',
    xtconstant.ORDER_PART_CANCEL: '部撤',
    xtconstant.ORDER_CANCELED: '已撤',
    xtconstant.ORDER_PART_SUCC: '部成',
    xtconstant.ORDER_SUCCEEDED: '已成',
    xtconstant.ORDER_JUNK: '废单',
    xtconstant.ORDER_UNKNOWN: '未知'
}
 
if __name__ == '__main__':
    app = Sanic(name='xtquant')
    app.config.RESPONSE_TIMEOUT = 600000
    app.config.REQUEST_TIMEOUT = 600000
    app.config.KEEP_ALIVE_TIMEOUT = 600
    app.blueprint(api)
    app.run(host='0.0.0.0', port=7800, workers=1, auto_reload=True, debug=False)

你可能感兴趣的:(交易接口,servlet,python,java)