聚宽策略想实盘?这个开源项目让你一行代码不改直接跑

news/2025/12/4 17:13:05/文章来源:https://www.cnblogs.com/bullettrade/p/19308512

聚宽策略想实盘?这个开源项目让你一行代码不改直接跑

写了个量化策略,回测年化30%,然后呢?实盘的坑比你想象的多得多。

故事的开始

两年前,我遇到了和很多聚宽用户一样的问题:策略回测效果不错,但实盘很麻烦。

  • 聚宽官方实盘:要订阅服务,每月费用不低,而且有持仓限制
  • 自己对接券商:代码要改,API 完全不一样,光调试就要几周
  • 用 vnpy 等框架:学习成本高,之前写的聚宽代码全要重写

当时没找到满意的方案,就自己撸了一个本地交易系统,边用边改,跑了两年多,实盘也一直在用。

但这套代码写得比较野,东一块西一块,自己用没问题,想开源给别人用就不太行了——文档没有、结构混乱、到处是 hardcode。

今年终于下定决心,基于这两年的实战经验,从头重构了一版,这就是 BulletTrade

核心逻辑经过了两年实盘验证,但代码是全新的,架构清晰、文档齐全、方便扩展。

一句话介绍

BulletTrade 是一个兼容聚宽 API 的本地量化框架,让你的聚宽策略代码几乎不改就能在本地回测、实盘。

pip install bullet-trade

就这么简单。

为什么要做这个?

先聊聊聚宽用户实盘的几条路:

方案 优点 痛点
聚宽官方实盘 代码不用改 收费、有限制、依赖聚宽服务器
自己对接券商 API 完全自主 代码要重写、对接成本高
vnpy/掘金等框架 功能强大 聚宽代码不兼容、学习曲线陡
BulletTrade 聚宽代码兼容、本地运行 还在完善中

我的设计目标很简单:

from jqdata import * 这行代码在本地也能跑。

策略逻辑不用改,换个运行环境就能从回测切到实盘。

核心功能

1. 聚宽策略无缝迁移

你在聚宽写的策略,大概率可以直接用。

# 这是一个标准的聚宽策略,bullet-trade 直接支持
from jqdata import *def initialize(context):set_benchmark('000300.XSHG')g.security = '510300.XSHG'run_daily(trade, 'every_bar')def trade(context):if g.security not in context.portfolio.positions:order_value(g.security, context.portfolio.available_cash)

在聚宽怎么写,在 bullet-trade 就怎么写。initializehandle_datarun_dailyorderget_price... 这些 API 都兼容。

2. 多数据源支持

不想用聚宽数据?没问题,切换数据源只需要改一行配置:

# .env 配置文件
DEFAULT_DATA_PROVIDER=jqdata    # 聚宽数据(需要账号)
# DEFAULT_DATA_PROVIDER=miniqmt # MiniQMT 数据
# DEFAULT_DATA_PROVIDER=tushare # TuShare 数据

支持的数据源:

  • MiniQMT:QMT 客户端自带,开通券商账户即可免费使用
  • TuShare:注册即可用,部分高级数据需要积分
  • JQData:聚宽官方数据,质量好但需要付费
  • 本地缓存:自动缓存历史数据,重复回测更快

3. 回测引擎

一条命令跑回测:

bullet-trade backtest your_strategy.py --start 2024-01-01 --end 2024-12-01

回测引擎的特点:

  • 真实价格撮合:用开盘价/收盘价成交,不是用信号价
  • 分红送股处理:自动处理除权除息,回测更真实
  • 支持分钟/日线--frequency minute--frequency day
  • HTML 报告一键生成:收益曲线、回撤、交易记录全都有

backtest_result

4. 参数优化

策略里有参数想调优?多进程并行帮你跑:

bullet-trade optimize your_strategy.py \--params '{"ma_period": [5, 10, 20], "threshold": [0.01, 0.02, 0.03]}' \--start 2020-01-01 --end 2023-12-31

自动遍历所有参数组合,输出最优解。

optimize-demo

5. Tick 实时行情(打板利器)

对于打板、抢涨停的用户,行情延迟至关重要。bullet-trade 支持 tick 级别的实时行情订阅:

def initialize(context):g.watch_list = ['000001.XSHE', '000002.XSHE']g.limit_up = {}  # 缓存涨停价# 订阅 tick 数据subscribe(g.watch_list, 'tick')def before_trading_start(context):# 开盘前获取涨停价,写入全局变量for code in g.watch_list:data = get_current_data()[code]g.limit_up[code] = data.high_limit  # 涨停价def handle_tick(context, tick):# 实时处理每一笔 tickcode = tick['sid']price = tick['last_price']bid1_vol = tick.get('bid1_volume', 0)  # 买一量(封单量)# 判断涨停 + 封单量limit_up = g.limit_up.get(code)if limit_up and price >= limit_up and bid1_vol > 100000:print(f"{code} 涨停封单!封单量: {bid1_vol}")

Tick 功能特点

  • 毫秒级延迟:基于 QMT 的 xtdata 实时推送
  • 📊 盘口深度:买一卖一价格和挂单量
  • 🌐 全市场订阅subscribe(['SH', 'SZ'], 'tick') 扫描全市场

打板场景:实时监控封单量变化,判断涨停板强度,抓住打开瞬间。

6. 实盘接入

这是重点。bullet-trade 提供两种主要的实盘方案:


方案一:独立实盘(完全本地运行)

策略代码、数据、下单全部在本地完成,不依赖任何外部平台。

本地 QMT(Windows)

如果你有 QMT 客户端(国金、华鑫等券商都支持),一条命令启动:

bullet-trade live your_strategy.py --broker qmt

策略就跑起来了,下单直接走券商通道。

远程 QMT Server(Mac/Linux 也能用)

没有 Windows 电脑?没关系。

先在一台 Windows 机器(或云服务器)上运行 QMT Server:

bullet-trade server --listen 0.0.0.0 --port 58620 --token your_secret

然后在你的 Mac/Linux 上运行策略:

bullet-trade live your_strategy.py --broker qmt-remote

策略在本地跑,下单请求通过网络发到 Windows 上的 QMT。

这意味着:

  • 🍎 Mac 用户也能实盘了
  • ☁️ 策略可以跑在云服务器上
  • 🔒 策略代码不用上传到任何平台

方案二:聚宽模拟盘 + 远程 QMT Server

这是一个混合方案:策略在聚宽模拟盘实时运行,产生交易信号后调用你自己的 QMT Server 执行真实下单。

适用场景

  • 策略已经在聚宽模拟盘跑了很久,验证过了
  • 想用聚宽的数据和策略托管,但实盘用自己的券商
  • 聚宽官方实盘太贵或有限制,想接自己的账户

工作原理

┌─────────────────┐          ┌─────────────────┐
│   聚宽模拟盘     │  ──────▶ │  远程 QMT Server │
│  (策略实时运行)  │   HTTP   │  (Windows + QMT) │
│  产生交易信号    │          │   执行真实下单   │
└─────────────────┘          └─────────────────┘│▼┌─────────────────┐│   券商真实账户   │└─────────────────┘

使用步骤

  1. 在 Windows 机器上启动 QMT Server:
bullet-trade server --listen 0.0.0.0 --port 58620 --token your_secret
  1. bullet_trade_jq_remote_helper.py 上传到聚宽研究根目录

  2. 在聚宽模拟盘策略中,信号触发时调用远程下单:

import bullet_trade_jq_remote_helper as btdef initialize(context):# 配置远程 QMT Serverbt.configure(host='你的服务器IP',port=58620,token='your_secret')def handle_data(context, data):# 你的策略逻辑...产生信号if should_buy:# 聚宽模拟盘下单(可选,用于记录)order('510300.XSHG', 100)# 同时调用远程 QMT 真实下单bt.order('510300.XSHG', 100)# 也可以查询真实账户信息real_portfolio = bt.get_portfolio()print(f"真实账户可用资金: {real_portfolio['available_cash']}")

优势

  • 📊 策略托管在聚宽:7x24 小时运行,不用自己维护服务器
  • 💰 下单走自己券商:佣金更低,资金在自己账户
  • 🔄 信号和执行分离:聚宽产生信号,QMT 执行交易,各司其职
  • 双重记录:聚宽模拟盘记录一份,真实账户执行一份,方便对账

快速上手

三步跑通:

Step 1: 安装

pip install bullet-trade

Step 2: 配置数据源

创建 .env 文件,选择一个数据源:

# 方式一:MiniQMT(推荐,开通 QMT 后免费使用)
DEFAULT_DATA_PROVIDER=qmt# 方式二:TuShare(需要注册,部分数据免费)
# DEFAULT_DATA_PROVIDER=tushare
# TUSHARE_TOKEN=你的token# 方式三:JQData(聚宽数据,需要申请账号)
# DEFAULT_DATA_PROVIDER=jqdata
# JQDATA_USER=你的账号
# JQDATA_PASSWORD=你的密码# 方式四:先用模拟数据体验
# DEFAULT_DATA_PROVIDER=simulator

数据源说明

  • MiniQMT:开通 QMT 券商账户后免费使用,数据质量好,推荐
  • TuShare:注册即可用,部分高级数据需要积分
  • JQData:聚宽官方数据,质量最好但需要付费

Step 3: 运行

# 回测
bullet-trade backtest your_strategy.py --start 2024-01-01 --end 2024-06-01# 或者启动研究环境(JupyterLab)
bullet-trade lab

就这么简单。你之前在聚宽写的策略,复制过来基本就能跑。

和聚宽的关系

说明一下:bullet-trade 不是聚宽官方项目,是我个人开发的开源工具。

它的定位是:

  • 聚宽的补充,不是替代
  • 让聚宽用户的策略能本地化运行
  • 提供从回测到实盘的完整链路

如果你:

  • 只需要研究和回测 → 聚宽研究环境足够了
  • 想要本地运行、实盘接入 → bullet-trade 是个选择

两者可以配合使用:在聚宽上研究调试,确认没问题后用 bullet-trade 本地实盘。

项目现状

目前版本(v0.x)已经稳定可用:

已支持

  • 聚宽 API 兼容(大部分常用 API)
  • 多数据源(JQData、MiniQMT、TuShare)
  • 日线/分钟级回测
  • 参数优化
  • 本地/远程 QMT 实盘
  • CLI 工具链

🔲 规划中

  • Web UI 监控面板
  • 更多数据源支持
  • 策略模板库

最后

开源不易,如果觉得有用:

  • GitHub Star:https://github.com/BulletTrade/bullet-trade
  • 📖 文档站点:https://bullettrade.cn/
  • 💬 问题反馈:GitHub Issue 或微信交流

有问题欢迎在评论区聊,也想听听大家实盘都用什么方案?


⚠️ 风险提示:量化交易有风险,任何策略都不保证收益。请先在模拟环境充分验证,实盘从小仓位开始。


作者是个独立开发者,白天搬砖晚上写代码,欢迎交流量化心得。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/987101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年泉州蹲便疏通打孔公司权威推荐榜单:疏通蹲便‌/蹲便器疏通‌/蹲便疏通口‌源头公司精选

在泉州地区,因长期使用、管道老化或杂物堵塞导致的蹲便器问题是家庭及商业场所中常见的生活难题。根据行业经验,超过80% 的卫生间堵塞问题发生在马桶和蹲便器部位。选择一家技术可靠、响应迅速的专业公司,是快速恢复…

十大爆款小程序休闲游戏:易上手不占空间,摸鱼解压打发时间好伙伴

在快节奏的现代生活中,利用碎片化时间玩上一把轻松有趣的小游戏成了许多人的解压选择。小程序游戏凭借其无需下载、不占空间、即开即玩的特点,迅速成为摸鱼、解压、打发时间的神器。今天,就为大家盘点十款热门的小程…

IDEA(2020版)实现JSP基本语法

IDEA(2020版)实现JSP基本语法查看全文:IDEA(2020版)实现JSP基本语法 – 每天进步一点点在JSP文件中可以嵌套很多内容,例如JSP的脚本元素和注释等,这些内容的编写都需要遵循一定的语法规范。本节将对JSP的基本语法进…

2025 年 12 月码垛机厂家权威推荐榜单:多样板材/倒板/分拣/上料/下料码垛机,全自动与半自动解决方案精选!

2025 年 12 月码垛机厂家权威推荐榜单:多样板材/倒板/分拣/上料/下料码垛机,全自动与半自动解决方案精选! 随着工业自动化技术的不断进步,码垛机在现代制造业中的应用越来越广泛。从多样板材码垛机到倒板码垛机、分…

2025年AI培训权威推荐榜:深度评测与趋势前瞻

引言 AI培训领域鱼龙混杂,课程质量参差不齐,企业如何精准筛选真正优质的培训机构成为一大难题。本榜单从技术实力、课程体系、师资团队、服务保障、实战案例等多维度严格筛选,为您推荐5家标杆机构,助力精准决策。 …

备考必看!2025年12月五大雅思培训机构选择全指南

在当今全球化的时代,雅思考试作为衡量英语能力的重要标准,对于众多有留学、移民以及职业发展需求的人士而言,其重要性不言而喻。随着 2025 年 12 月雅思考试日期的日益临近,无数怀揣着目标与梦想的考生们,正紧锣密…

【Flutter x 鸿蒙】第三篇:鸿蒙特色UI组件与Flutter的融合使用 - 青青子衿-

【Flutter x 鸿蒙】第三篇:鸿蒙特色UI组件与Flutter的融合使用 在掌握了Flutter on HarmonyOS的架构设计后,我们今天将深入探讨如何将鸿蒙特色的设计语言与Flutter组件完美融合,打造既保持跨平台效率又具备鸿蒙原生…

2025年12月不锈钢橱柜选购宝典:五大零甲醛品牌深度解析,告别甲醛困扰!

导语 健康家居理念深入人心,零甲醛已成为厨房装修的核心诉求,而不锈钢橱柜恰好凭借这一关键优势,叠加耐用抗造、易清洁的特性,成为2025年家庭厨房的热门选择。当前行业在材质升级与设计创新中持续突破,各大品牌不…

ESD管在新兴领域的创新应用:从5G毫米波到智能穿戴的技术突破-ASIM阿赛姆

传统ESD管主要用于USB、HDMI等接口,但随着5G、物联网、可穿戴设备发展,ESD保护面临全新挑战。本文剖析三个典型新兴场景的技术难点与阿赛姆的解决方案。 场景一:5G毫米波天线端口的ESD保护 5G毫米波频段覆盖24GHz-4…

2025 年 12 月红木家具权威推荐榜单:从床到茶桌,匠心工艺与经典设计的完美结合!

2025 年 12 月红木家具权威推荐榜单:从床到茶桌,匠心工艺与经典设计的完美结合! 随着中国传统文化的复兴,红木家具以其独特的文化内涵和精湛的工艺逐渐成为现代家居装饰的热门选择。为了帮助消费者更好地筛选红木床…

【python】corruptions = util.get_corruptions()[1:]

代码:corruptions = util.get_corruptions()[1:]主要注意其中使用到的切片语法 逐项解释(中文):util.get_corruptions():调用 util 模块里的 get_corruptions 函数,得到一个序列(通常是 list、tuple 或其他支持…

北京 KET/PET 辅导机构口碑排行榜(2026实测版)​

家住北京东城区、西城区、朝阳区、海淀区、丰台区、石景山区、门头沟区、房山区、通州区、顺义区、昌平区、大兴区、怀柔区、平谷区、密云区、延庆区的家长们,是不是还在为孩子的 KET/PET 课外补习操碎了心?想找靠谱…

【TET出版 | EI检索 | 多届历史快速稳定检索】第十届清洁能源与发电技术国际学术会议(CEPGT 2025)

第十届清洁能源与发电技术国际学术会议(CEPGT 2025),将于2025年12月19-21日在江苏常州举办。【IET出版,河海大学主办,多届数会议,连续多届快速稳定EI检索】 第十届清洁能源与发电技术国际学术会议(CEPGT 2025)…

2025年江苏电焊技巧培训综合推荐榜单:江苏电焊工服务/江苏电焊技术公司/江苏电焊氩弧焊学校精选

焊接作为现代工业体系的基础工艺,其技术水平直接关系到制造业的产品质量和工程安全。随着产业升级,市场对高素质焊工的需求持续增长,特别在江苏这样的制造业大省,持有《特种作业操作证》、《特种设备操作人员证》 …

技术图文收集

三次握手,四次挥手

春熙路火锅推荐,美食/特色美食/火锅/老火锅/川渝火锅/重庆火锅/火锅店火锅品牌推荐排行榜单

作为成都的城市名片与美食地标,春熙路商圈不仅是潮流汇聚之地,更是火锅品牌必争的“味蕾战场”。这里云集了众多火锅品牌,从百年老店到新锐势力,竞争激烈程度可见一斑。对于食客而言,如何在琳琅满目的选择中,精准…

2025年12月小程序开发公司推荐,覆盖微信/定制/多行业的高口碑企业榜单

在数字经济深度渗透的当下,小程序已从企业数字化转型的可选工具升级为核心基础设施,凭借“即用即走”的轻量化优势,成为连接企业与用户的关键载体。其中微信小程序凭借庞大的生态流量,始终占据市场主导地位,而定制…

天津 KET/PET 辅导机构口碑排名:12 区县家长首选的权威测评方案

家住天津和平区的你,是不是为孩子 KET/PET 备考操碎了心?河东区的家长群里,是不是天天讨论哪家课外补习靠谱?河西区、南开区的家长们,是不是跑遍了教育机构,却没找到能精准提分的实用方案?就连东丽区、西青区、…

2025 最新离心机源头厂家推荐榜:权威测评精选实力品牌,采购选型全攻略碟式离心机/卧螺离心机公司推荐

引言 离心机作为工业分离领域的核心设备,其性能直接关乎生产效率与产品品质。当前市场厂家数量超千家,但产品合格率仅为 78%,近 40% 企业曾因设备适配性不足导致生产损失。为破解采购痛点,本次榜单依托行业协会专项…

【SAE出版 | EI检索 | 高录用】2025年航空航天与电子信息国际学术会议(ICAEI 2025)

2025年航空航天与电子信息国际学术会议(ICAEI 2025)将于2025年12月19-21日在南昌举办。会议由南昌理工学院主办。【1、南昌理工学院主办,院士、Fellow出席报告、SAE出版,EI检索快速稳定,】 2025年航空航天与电子信…