如果觉得成交主推延时,可以打一份日志验证下,和自己的程序做个校验, 以下是代码:- #coding=utf-8
- import logging
- import logging.handlers
- import os
- from random import randint
- from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback
- from xtquant.xttype import StockAccount
- from datetime import datetime, timedelta
- from xtquant.xttrader import XtQuantTraderCallback
- class MyXtQuantTraderCallback(XtQuantTraderCallback):
- def on_disconnected(self):
- """
- 连接断开
- :return:
- """
- pass
- def on_stock_order(self, order):
- """
- 委托回报推送
- :param order: XtOrder对象
- :return:
- """
- pass
- def on_stock_trade(self, trade):
- global context1
- """
- 成交变动推送
- :param trade: XtTrade对象
- :return:
- """
- td = datetime.fromtimestamp(trade.traded_time)
- mylog.info(
- f'on trade callback: 账号: {trade.account_id}, 合约: {trade.stock_code} 订单号: {trade.order_id}, 交易时间: {td}')
- # print(dir(trade))
- print(f'on trade callback: 账号: {trade.account_id}, 合约: {trade.stock_code} 订单号: {trade.order_id}, 交易时间: {td}')
- # 记录日志
- def set_log(local_path):
- logger = logging.getLogger('mylogger_buy')
- logger.setLevel(logging.INFO)
- format_str = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s", datefmt='%Y-%m-%d %H:%M:%S') # 设置日志格式
- sh_handler = logging.StreamHandler() # 往屏幕上输出
- sh_handler.setFormatter(format_str) # 设置屏幕上显示的格式
- rf_handler = logging.handlers.TimedRotatingFileHandler(
- local_path + os.sep + '主推日志{}.log'.format(datetime.now().strftime("%Y%m%d")),
- when='D', interval=1)
- rf_handler.setFormatter(format_str)
- logger.addHandler(sh_handler) # 把对象加到logger里
- logger.addHandler(rf_handler)
- return logger
- if __name__ == "__main__":
- print("demo test")
- # 日志路径
- local_path = r'C:\Users\admin\Desktop\stool_pool'
- mylog = set_log(local_path)
- # 写极简的安装路径
- path = r'E:\十月尔尔\qmt\31256\迅投极速交易终端睿智融科版\userdata_mini'
- session_id = randint(100000, 999999)
- stock_account_id = '800176' # 资金账号
- xt_trader = XtQuantTrader(path, session_id)
- acc = StockAccount(stock_account_id, 'STOCK')
- callback = MyXtQuantTraderCallback()
- xt_trader.register_callback(callback)
- xt_trader.start()
- connect_result = xt_trader.connect()
- print('建立交易连接,返回0表示连接成功', connect_result)
- subscribe_result = xt_trader.subscribe(acc)
- print('对交易回调进行订阅,订阅后可以收到交易主推,返回0表示订阅成功', subscribe_result)
- try:
- xt_trader.run_forever()
- except:
- pass
复制代码
|