老帅李华杰
管理员
管理员
  • UID2
  • 粉丝33
  • 关注0
  • 发帖数402
  • 社区居民
  • 忠实会员
  • 喜欢达人
  • 原创写手
阅读:203回复:0

QMT交易接口重连示例

楼主#
更多 发布于:2025-10-22 23:40
该示例演示交易链接断开时重连的代码处理
注意:
1. 该示例不是线程安全的,仅演示断开链接时应该怎么处理重连代码,实际使用时请注意避免潜在的问题
2. 本策略只用于提供策略写法及参考,若您直接进行实盘下单,造成损失本网站不负担责任。





import time
from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback
from xtquant.xttype import StockAccount
from xtquant import xtconstant

#指定客户端所在路径
path = 'E:\qmt\\userdata_mini'
# 指定session id 整数类型,任意整数即可,同时运行的策略不能重复
session_id = 123456

xt_trader = None


class MyXtQuantTraderCallback(XtQuantTraderCallback):
    def on_disconnected(self):
        """
        连接断开
        :return:
        """
        print("connection lost, 交易接口断开,即将重连")

        global xt_trader
        xt_trader = None


def connect():
    global session_id
    
    # 重连时需要更换session_id
    session_id += 1
    xt_trader = XtQuantTrader(path, session_id)
    # 创建资金账号为1000000365的证券账号对象
    acc = StockAccount('1000000365')
    callback = MyXtQuantTraderCallback()
    xt_trader.register_callback(callback)
    # 启动交易线程
    xt_trader.start()
    # 建立交易连接,返回0表示连接成功
    connect_result = xt_trader.connect()
    if connect_result == 0:
        return xt_trader, True
    else:
        return None, False


if __name__ == "__main__":
    xt_trader, success = connect()
    print(xt_trader, success)
    while 1:
        if xt_trader is None:
            print('开始重连交易接口')
            xt_trader, success = connect()
            if success:
                print('交易接口重连成功')
        time.sleep(3)
好的指标等于至高的阵地,明察秋毫自然马到成功; 微信手机同号:15907742318 老帅李华杰
游客

返回顶部