尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

miniQMT 停用后怎么办?散户量化的数据与交易替代方案(附可运行代码)

miniQMT 停用后怎么办?散户量化的数据与交易替代方案(附可运行代码) miniQMT 停用后怎么办散户量化的数据与交易替代方案附可运行代码本文为技术路径分析。miniQMT 散户通道关停是 2026 年 9 月的事实事件各券商节奏不一请以你开户券商的正式通知为准。不构成投资建议。先划边界停了什么没停什么停的是「散户通过 miniQMT 接口做自动化交易」这一条路不是散户量化这件事能力受影响替代方案行情数据获取日线/分钟线❌ 不受影响baostock / akshare / 通达信TQ全部免费历史数据本地落库❌ 不受影响parquet 增量更新本文给代码回测研究❌ 不受影响Backtrader / 自研 pandas 框架行情实时监控❌ 不受影响HTTP 轮询 / akshare 多源本文给骨架实盘自动下单✅ 受影响大 QMT 客户端 / PTrade见文末对照表一句话结论停在交易接口这一环数据和研究根本不需要 miniQMT。一、先自检你的代码依赖了什么迁移前先盘点依赖面。在项目根目录跑这一段几秒钟扫完# check_xt_deps.py —— 扫描项目里的 xtquant 依赖importos,re PATTERNre.compile(rfrom\sxtquant|import\sxtquant|xtdata\.|xt_trader\.|subscribe_whole_quote|passorder)hits[]forroot,dirs,filesinos.walk(.):dirs[:][dfordindirsifdnotin(.git,__pycache__,venv,.venv)]forfinfiles:ifnotf.endswith(.py):continuepathos.path.join(root,f)withopen(path,encodingutf-8,errorsignore)asfp:fori,lineinenumerate(fp,1):ifPATTERN.search(line):hits.append(f{path}:{i}:{line.strip()[:80]})print(f共{len(hits)}处 xtquant 依赖)forhinhits:print( ,h)输出分两类xtdata.行情被停影响小和xt_trader./passorder交易受影响。大多数散户的痛点其实在第二类只有一两处调用——先看清依赖规模再决定动不动迁移。二、数据层免费三件套实测600519 单股、2024.1→2026.9 共 649 根日线的实测完整六组对比见文末仓库06_api_benchmark.py接口单股增量耗时特点akshare·东财源0.39s最快但当晚重测曾断连——务必加重试baostock3.3s稳定数据规范白嫖党的压舱石通达信 TQ本地客户端二次读取 0.038s首次入库慢之后本地毫秒级# fetch_baostock.py —— 日线获取最小可运行版importbaostockasbsimportpandasaspd bs.login()rsbs.query_history_k_data_plus(sh.600519,date,open,high,low,close,volume,start_date2024-01-01,end_date2026-09-21,frequencyd,adjustflag2)# 前复权rows[]whilers.error_code0andrs.next():rows.append(rs.get_row_data())bs.logout()dfpd.DataFrame(rows,columns[date,open,high,low,close,volume])forcindf.columns[1:]:df[c]pd.to_numeric(df[c],errorscoerce)print(df.tail())# fetch_akshare.py —— 东财源 重试快但会断连重试是纪律importtimeimportakshareasakdeffetch_with_retry(symbol,start,end,retries3):forkinrange(retries):try:returnak.stock_zh_a_daily(symbolsymbol,start_datestart,end_dateend,adjustqfq)exceptExceptionase:print(f第{k1}次失败:{e})time.sleep(2**k)# 指数退避raiseRuntimeError(重试耗尽)dffetch_with_retry(sh600519,20240101,20260921)print(df.tail())三、数据落本地parquet 增量更新接口会变数据是自己的miniQMT 这件事本身就是教训接口会挂、会变、会收紧只有落到自己硬盘的 parquet 才是资产。增量更新骨架# incremental_store.py —— 首次全量 之后增量追加importosimportpandasaspd STOREdata/600519_daily.parquetdefupdate_store(symbol:str,fetch_full,fetch_range):fetch_full() - 全量 DataFramefetch_range(start, end) - 区间 DataFrameifos.path.exists(STORE):localpd.read_parquet(STORE)local[date]pd.to_datetime(local[date])# 统一为 datetime避免字符串排序陷阱startlocal[date].max().strftime(%Y%m%d)# 从最后一天接着拉freshfetch_range(start,pd.Timestamp.today().strftime(%Y%m%d))fresh[date]pd.to_datetime(fresh[date])df(pd.concat([local,fresh]).drop_duplicates(subsetdate,keeplast).sort_values(date).reset_index(dropTrue))else:dffetch_full()os.makedirs(os.path.dirname(STORE),exist_okTrue)df.to_parquet(STORE,indexFalse)print(f落库完成{len(df)}根K线最后日期{df[date].max()})returndf# 用法示例# update_store(600519,# fetch_fulllambda: fetch_with_retry(sh600519, 20240101, 20260921),# fetch_rangefetch_with_retry)三个工程要点不复权 复权因子分开存——前复权价明年会因新的除权除息而变只有「原始价 因子」是永恒快照drop_duplicates(subsetdate)——增量拉取的边界日会重叠去重比去算术错误便宜每次落库打一行日志——半年后你会感谢这行日志四、监控层订阅换轮询miniQMT 的subscribe_whole_quote是推送式订阅替代方案是 HTTP 轮询1 秒一次足够大多数低频场景# poll_monitor.py —— 新浪免费行情轮询低频监控骨架importtimeimportrequests URLhttps://hq.sinajs.cn/listsh600519HEADERS{Referer:https://finance.sina.com.cn}# 新浪要求带 Refererdefpoll(codessh600519,interval1.0,on_tickprint):urlfhttps://hq.sinajs.cn/list{codes}whileTrue:try:rrequests.get(url,headersHEADERS,timeout5)fieldsr.text.split(,)# 字段含义见新浪行情文档on_tick({name:fields[0].split()[-1].strip(),price:float(fields[3]),time:f{fields[30]}{fields[31]}})exceptExceptionase:print(tick fail:,e)# 单次失败不中断监控time.sleep(interval)# poll(interval2.0)注意事项轮询别开多线程轰炸合规与封 IP 双重风险监控逻辑里的「触发信号」和「执行下单」必须解耦——信号可以自动下单按文末的交易层方案走合规通道。五、交易层两条持牌路线你要做的事miniQMT (xtquant)大 QMTPTrade取K线xtdata.get_market_dataget_market_data_ex内置 get_history下单xt_trader.order_stockpassorderorder() 系接口运行框架自己的 Python 进程客户端内 handlebar 模型服务器端托管运行回调机制xt_trader 回调类handlebar 系列回调类聚宽 API门槛已停视券商一般 10 万部分券商更低大 QMT策略在客户端内写handlebar 机制passorder 参数丰富限价/市价/对手价/涨停价适合执行优化。迁移主要工作量是 API 风格改写逻辑不变。PTrade券商托管运行API 风格接近聚宽上手快免费 L2 数据接口是隐藏优势。适合策略简单、不想管环境的。留在研究层如果你的策略还停在「回测 模拟盘」什么都不用做——模拟盘用券商 APP 自带功能即可。六、决策树你现在处于哪个阶段 ├─ 研究 / 回测 / 模拟盘 │ → 什么都不用做顺手把数据落 parquet ├─ 已有稳定策略要实盘 │ → 大 QMT 或 PTrade先跑上面的依赖扫描通常改动比想象小 └─ 高频 / 大资金严肃玩家 → 程序化交易报备 持牌通道流程成本换长期确定性诚实的总结miniQMT 停用砍掉的是「无门槛自动下单」数据、回测、监控三层的免费方案毫发无损迁移的真实工作量集中在交易函数的 API 改写先用依赖扫描量化它通常一天内能完成数据落本地这件事事件发生前就该做事件只是把它变成了共识相关代码仓库本文涉及的数据获取、接口横评、增量落库完整代码已在 GitHub 开源MIT搜quant-toolbox。免责声明本文为技术路径分析不构成任何投资建议不涉及具体标的推荐亦不承诺收益。文中提及平台以其官方规则为准miniQMT 关停时间线与存量权限处理以各券商正式通知为准。市场有风险决策需谨慎。
返回列表