返回列表 发布新帖

[分享]成交主推行情有延时,验证方式

1897 3
发表于 2023-12-21 16:44:07 | 显示全部楼层 阅读模式
如果觉得成交主推延时,可以打一份日志验证下,和自己的程序做个校验, 以下是代码:
  1. #coding=utf-8
  2. import logging
  3. import logging.handlers
  4. import os
  5. from random import randint
  6. from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback
  7. from xtquant.xttype import StockAccount
  8. from datetime import datetime, timedelta

  9. from xtquant.xttrader import XtQuantTraderCallback


  10. class MyXtQuantTraderCallback(XtQuantTraderCallback):
  11.     def on_disconnected(self):
  12.         """
  13.         连接断开
  14.         :return:
  15.         """
  16.         pass

  17.     def on_stock_order(self, order):
  18.         """
  19.         委托回报推送
  20.         :param order: XtOrder对象
  21.         :return:
  22.         """
  23.         pass

  24.     def on_stock_trade(self, trade):
  25.         global context1
  26.         """
  27.         成交变动推送
  28.         :param trade: XtTrade对象
  29.         :return:
  30.         """
  31.         td = datetime.fromtimestamp(trade.traded_time)
  32.         mylog.info(
  33.             f'on trade callback: 账号: {trade.account_id}, 合约: {trade.stock_code} 订单号: {trade.order_id}, 交易时间: {td}')
  34.         # print(dir(trade))
  35.         print(f'on trade callback: 账号: {trade.account_id}, 合约: {trade.stock_code} 订单号: {trade.order_id}, 交易时间: {td}')



  36. # 记录日志
  37. def set_log(local_path):
  38.     logger = logging.getLogger('mylogger_buy')
  39.     logger.setLevel(logging.INFO)
  40.     format_str = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s", datefmt='%Y-%m-%d %H:%M:%S')  # 设置日志格式
  41.     sh_handler = logging.StreamHandler()  # 往屏幕上输出
  42.     sh_handler.setFormatter(format_str)  # 设置屏幕上显示的格式
  43.     rf_handler = logging.handlers.TimedRotatingFileHandler(
  44.         local_path + os.sep + '主推日志{}.log'.format(datetime.now().strftime("%Y%m%d")),
  45.         when='D', interval=1)
  46.     rf_handler.setFormatter(format_str)
  47.     logger.addHandler(sh_handler)  # 把对象加到logger里
  48.     logger.addHandler(rf_handler)
  49.     return logger

  50. if __name__ == "__main__":
  51.     print("demo test")
  52.     # 日志路径
  53.     local_path = r'C:\Users\admin\Desktop\stool_pool'
  54.     mylog = set_log(local_path)
  55.     # 写极简的安装路径
  56.     path = r'E:\十月尔尔\qmt\31256\迅投极速交易终端睿智融科版\userdata_mini'
  57.     session_id = randint(100000, 999999)
  58.     stock_account_id = '800176'  # 资金账号
  59.     xt_trader = XtQuantTrader(path, session_id)
  60.     acc = StockAccount(stock_account_id, 'STOCK')
  61.     callback = MyXtQuantTraderCallback()
  62.     xt_trader.register_callback(callback)
  63.     xt_trader.start()
  64.     connect_result = xt_trader.connect()
  65.     print('建立交易连接,返回0表示连接成功', connect_result)
  66.     subscribe_result = xt_trader.subscribe(acc)
  67.     print('对交易回调进行订阅,订阅后可以收到交易主推,返回0表示订阅成功', subscribe_result)
  68.     try:
  69.         xt_trader.run_forever()
  70.     except:
  71.         pass
复制代码


评论3

*******5934
发表于 2023-12-21 22:29:45 | 显示全部楼层
非常棒,学习了
*******2821
发表于 2024-7-22 10:53:12 | 显示全部楼层
如果能把最后的 log 输出, 关键点再指出说明一下, 就更好了
Anna向阳而生
发表于 2024-7-26 11:37:29 | 显示全部楼层
无门槛申请QMT(mini qmt)、ptrade,策略代写,股票低佣万0.854,融资4.5%起 ,联系:Annalidian-8285

回复

您需要登录后才可以回帖 登录 | 立即注册

客服专线

400-080-8112

用思考的速度交易,用真诚的态度合作,我们是认真的!
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2025 迅投QMT社区 版权所有 All Rights Reserved. 京ICP备2025122616号-3
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表