xtquant 中切换 IP 实现更稳定地获取数据

PTD 阅读:18 2025-06-16 10:42:58 评论:0

xtquant 中切换 IP 实现更稳定地获取数据

利用迅投 QMT 的 xtquant 包我们可以很方便的独立获取量化数据,但有时默认连接了某个拥挤的站点,或者部分有故障的服务器,给我们造成不稳定的困扰。本文介绍如何在切换行情服务器,获取更加准确的数据。

一、券商版行情站点切换
如果是 miniqmt, 配置文件在 QMT 安装根目录下的 userdata_mini\users\xtquoterconfig.xml 中,读取文件通常能获取券商版默认的用户名和密码, 比如下面的迅投东莞主站:

info={
  "ip": "218.16.123.121",
  "port": 55300,
  "username": "qmtguosheng307",
  "pwd": "AUtURWJaLUJJOXlyZnBBVkdWUG9tNElFZmpvU01zY19nYlRVVEotUzdoMEM5RkJmMFdheG5XZz09"
}


如果我们要增加或修改行情站点,例如增加 VIP 行情站点,则可以在客户端行情配置中手动添加或者直接修改这个文件,并在 QuoterServers 配置项中的设置默认连接行情。

需要注意的是,券商版 QMT 目前暂时不支持在代码中切换站点,因此只能手动在 QMT/MiniQMT 行情源中切换。

二、VIP 行情站点切换
2.1 问题数据复线
比如下面代码读取历史北向资金流向数据,部分默认站点(上海)可能出现读取数据丢失以及不准确问题:

import datetime, time
import pandas as pd
from xtquant import xtdatacenter as xtdc
import xtquant.xtdata as xtdata
from clickhouse_driver import Client
from tqdm import tqdm
xtdc.set_token('3e6c******5501')
xtdc.set_data_home_dir('/data/qmt')


xtdata.download_history_data('FFFFFF.SGT', 'northfinancechange1m', '', '')
xtdata.get_market_data_ex([], ['FFFFFF.SGT'], 'northfinancechange1m', '', '')['FFFFFF.SGT']

2.2 切换行情站点
VIP 行情目前支持在 xtdatacenter 中通过 QuoteServer 函数手动设置行情服务器并连接:

import time
info={'ip': '218.16.123.27', 'port': 55310, 'username': '', 'pwd': ''}
qs = xtdata.QuoteServer(info)
result = qs.connect()

if result.get("result", False):
  print("切换站点成功!")
else:
  print("切换站点失败!")


切换成功后,我们重新下载数据,可以发现数据正常。

当然,可以通过回调函数更加精细地监控切换服务器连接状态:

connect_success = 0
def func(d):
    ip = d.get('ip', '')
    port = d.get('port')
    status = d.get('status', 'disconnected')

    global connect_success
    if ip == info['ip'] and port == info['port']:
        if status == 'connected':
            connect_success = 1
        else:
            connect_success = 2


# 注册连接回调信息
xtdata.watch_quote_server_status(func)

# 行情连接
qs = xtdata.QuoteServer(info)
qs.connect()

# 等待连接状态
while connect_success == 0:
    time.sleep(0.3)

if connect_success == 2:
    print("连接失败")


原文来自xuntou.net引用“量化实战”公号文章。

本文由 海星量化研究所 作者提供,转载请保留链接和署名!网址:https://qmt.hxquant.com/?id=43

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源; 2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任; 3.作者投稿可能会经我们编辑修改或补充。

搜索
排行榜
关注我们

扫码开通QMT/ptrade