LumiBot / 项目研究站

LumiBot:一个内置 AI Agent、能连 12 类券商把单子递出去的 Python 框架

LumiBot 是 Lumiwealth 维护的 Python 算法交易框架,GPL 系许可,仓库 2079 Star / 403 Fork。它与「只会算指标的库」不同:同一份 Strategy 子类既能跑历史回测,也能连上券商账户下真实委托,还内置了一套 AI trading agent 运行时——agent 可以看行情、读文件、查指标、写记忆,并在 allow_trading=True真的把订单提交到券商

但「AI 能下单」这句话里藏着很多需要核对的东西。本站围绕三个问题展开:① agent 说它买了,怎么才算真的成交?② 回测里的指标有没有偷看未来?③ 你从 PyPI 装到的到底是哪一版、按哪套许可?每一个结论都标了出处与采集日期。

先把三件事说在前面,因为它们会直接改变你的操作步骤:① 仓库默认分支是 devmain 分支并不存在(接口 404);② PyPI 最新是 4.5.91,而仓库 setup.py 里已经写着 4.5.92,README 的 AI 快速上手让你直接从仓库分支安装;③ 许可有两套口径——GitHub 与 setup.py 写 GPL-3.0,PyPI 4.5.91 的元数据写 MIT,而同一个 wheel 里携带的 LICENSE 文件是 GPL v3 全文。

GPL-3.0 / PyPI 标 MIT(口径冲突)2079 Star / 403 Fork主语言 Python采集日期 2026-09-22
本文核对环境
  • 仓库:Lumiwealth/lumibot,默认分支 dev,HEAD 提交 28afefe8(2026-09-18)
  • PyPI:lumibot 4.5.91(2026-09-06T21:16:02Z 上传,wheel 37,810,900 字节)
  • 仓库 setup.py 版本号:4.5.92(PyPI 上尚不存在)
  • 本机:Python 3.11.9 / Windows;EasyClaw 技能目录 29 个技能已核验
  • 采集日期 2026-09-22;本站未实盘下单,不做收益声明

项目来源

Lumiwealth/lumibot(GitHub 仓库页截图)

Lumiwealth/lumibot 的 GitHub 仓库首页截图,可见仓库名、Python 语言标识、许可标识与根目录文件列表 打开仓库 ↗
仓库首页截图,2026-09-22 采集(未登录状态)。仅证明仓库页面与该时点可见的信息(仓库名、主语言、许可标识、根目录文件),不代表任何策略或收益结论。仓库内容会变化,请以你打开时的页面为准。
先确认三件事

你装的、你 clone 的、你以为的许可,可能不是同一件事

开源项目的中文教程最容易在「版本与许可」这两处失真。下面三条都能自己复现:打开仓库看默认分支、打开 PyPI 看最新版、把 wheel 解压看里面的 LICENSE。

观测项具体值出处注意点
仓库默认分支devGitHub REST /repos/Lumiwealth/lumibotdefault_branch直接查 /branches/main 返回 404master 分支停在 2025-12-18,内容是 "Create CNAME",是给 GitHub Pages 用的
dev 最新提交28afefe8,2026-09-18/commits提交信息是 Merge pull request #1165 from Lumiwealth/version/4.5.92
PyPI 最新版4.5.91,2026-09-06 上传pypi.org/pypi/lumibot/jsonPyPI 上共 640 个发行版;只提供 wheel,没有 sdist
仓库 setup.py 版本号4.5.92raw/dev/setup.pyversion=PyPI 的发行版键集合里没有 4.5.92,即 PyPI 落后仓库一个版本
README 的 AI 快速上手pip install "git+https://github.com/Lumiwealth/lumibot.git@version/4.5.92"README「Run your first AI backtest」官方自己也知道 PyPI 上没有这一版,所以 AI 示例直接指向仓库分支
许可(GitHub / setup.py)GPL-3.0(GNU General Public License v3.0)GitHub license.spdx_idsetup.pylicense="GPL-3.0" 与 classifierREADME 顶部徽章也写 GPL v3
许可(PyPI 元数据)MITwheel 内 lumibot-4.5.91.dist-info/METADATALicense: MIT 与 classifier同一份 METADATA 里还写着 License-File: LICENSE
wheel 里真正携带的 LICENSEGNU GPL v3 全文(35,130 字符)解压 wheel 读取 dist-info/licenses/LICENSE也就是说:元数据说 MIT,包里带的却是 GPL v3 正文——发布物自身两处口径不一致
为什么要先看这张表:版本与许可会直接改变你的操作步骤——pip install lumibot 拿到的是 4.5.91,而 README 的 AI 示例要求 4.5.92;许可口径冲突意味着「能不能商用」这件事不能照抄任何一篇博客的结论本站只并置这两套口径与它们的文件位置,不提供法律意见。你怎么用,请以官方 LICENSE 文件与你的实际使用方式为准。
默认分支 devHEAD 28afefe8(2026-09-18),README 让你 pull 的就是它
PyPI 4.5.912026-09-06 上传,pip 装到的就是这一版
setup.py 已写 4.5.92PyPI 上不存在,只能从仓库分支装
main 分支不存在直查接口 404;master 是 Pages 用的
版本与分支轨道示意(依据 GitHub branches/tags/releases API、PyPI JSON 与本机读取的 setup.py,2026-09-22 采集)。示意图仅重述上述出处的事实,不代表官方时间线评价。
主线问题

「AI Agent 能下单」到底真在哪里?

官方描述的第一句是 AI agents that actually place the trade。这句话值得拆开看:能不能下单,取决于权限开关、就绪检查和状态核验三段机制,而不是取决于「有没有接大模型」。

权限是显式开关,不是默认能力

self.agents.create(name=..., allow_trading=False) 创建的 agent 会被摘掉 5 个变更类工具orders_submit_orderorders_submit_multilegorders_cancel_orderorders_modify_orderremember_decision。只读工具仍然保留,所以研究员 agent 照样能查行情、读文件、查记忆。

下单前必须自己看账

即使 agent 有交易权限,官方也要求它在同一次 run 内先看过账户组合、持仓和市价;缺任何一项,订单工具会返回结构化错误 ORDER_READINESS_REQUIRED不下单。框架不替你猜仓位,也不套用统一的保证金规则。

「提交了」不等于「成交了」

官方原文是 Never claim a fill unless is_filled is trueorders_wait_for_terminal 做的是有界轮询,上限 120 秒;超时、提交成功、接口返回 200,都不能当作成交证据。这条是判断「AI 交易演示」可信度的分水岭。

环节机制你能观察到什么注意点
权限allow_trading 参数切换工具集合关掉后 agent 的工具清单里不再出现下单类工具「只读 agent 也能下单」是错的;反过来,开了权限的 agent 也仍受就绪检查约束
就绪检查同一 run 内必须先调用 account_portfolio + account_positions + market_last_price缺检查时拿到 ORDER_READINESS_REQUIRED这是拒绝下单而不是自动补齐;框架明确不静默调整下单量
提交orders_submit_order / orders_submit_multileg返回订单标识符多腿期权是原子提交:券商不支持整包提交时,在提交任何一条腿之前就拒绝,绝不拆成子订单
成交判定orders_get_statusis_filled真实的成交状态字段提交成功或超时都不是成交证据
等待orders_wait_for_terminal,上限 120 秒轮询期间挂单可被处理超过 120 秒仍未终结,就要按「未知」处理,而不是按「已成交」处理
审计记忆工具 + SQLite + 三个 Parquet 产物可查 agent 名称、模型调用 ID、提案、风险笔记、最终决策「回放」回放的是决策,不是市场结果,见记忆与回放
回测与实盘同一份 Strategy两处共用同一生命周期钩子官方自己说明券商行为表仍需 smoke test 才能从「文档」变成「事实」,见一致性
核心速览

它铺开的范围有多大:代码口径与官方口径分开看

官方描述里的数字(12 brokers、25+ 示例)和仓库里能数出来的东西并不总是同一个口径。下面这组数字全部来自本机对目录清单与 wheel 内容的清点,采集日期 2026-09-22。

维度代码/包内可数的数量官方口径适用场景注意点
券商类11 个可实例化类(含面向开发者的 ExampleBroker描述写「12 brokers」,README 列 9 条产品条目判断自己的券商在不在名单三个口径都对,但含义不同:类、产品、可自动识别的凭据路径是三种统计方式
数据源模块lumibot/data_sources/ 共 27 个文件(含 __init__.pyexceptions.pyREADME 只列了名字查某个数据源有没有实现模块存在 ≠ 你的账号有权限;付费源要先有订阅
回测引擎lumibot/backtesting/16 个回测类模块README 举了 4 个(Yahoo/Polygon/ThetaData/Polymarket)选回测数据源同名数据源常有 pandas / polars 两条实现,别把两条算成两个数据商
示例策略example_strategies/47 个 .py,其中 agent_* 10 个、ai_* 13 个README 写「25+ example strategies」找可运行的最小样例示例能跑通不等于策略有效;AI 类示例多数需要对模型 Key 才能运行
内置 agent 技能3 个options-tradingresearch-datastock-tradingREADME 未单列了解 agent 被要求先读什么这是LumiBot 自带的运行时技能,和 EasyClaw 的技能体系完全是两套东西
依赖条目requirements.txtsetup.py 各 55 条README 只给一句 pip install lumibot评估装起来有多重ibapi==9.81.1.post1 这类钉死版本与 Google ADK / LiteLLM / MCP 全家桶,见安装与依赖体量
包内资源wheel 共 231 个条目,含 ThetaTerminal.jar(39 MB)README 只提 ThetaData 是可选 extras理解为什么 wheel 有 37.8 MB本机实测:pip 装完的包里确实带着这个 jar,也带着那 3 个 agent 技能

2079 Star / 403 Fork

仓库创建于 2020-09-10,最近一次 push 为 2026-09-21。Star 数随时间变化,本站标注采集日期,不做「最热门」这类比较。

640 个发行版

PyPI 上累计发行版数量,说明这是一个高频发布的商业团队项目,而不是个人周末项目。

AI 优先的仓库结构

仓库根目录直接放了 llms.txtllms-full.txtAGENTS.mdCLAUDE.md,并有专门的 agent 评测目录与 CI 工作流。

开源之外还有商业面

README 同时指向 BotSpot 托管平台(含免费挑战、训练营与市场),并声明部分 provider 链接与优惠码可能支持项目开发。开源代码与托管服务要分开看,见许可与商业边界

怎么开始

三条路线:不联网的回测、连券商的实盘、不装环境的技能

选路线之前先确认三件事:你要不要连券商账户、你打算用哪个数据源、你能不能接受在 Windows 上解决依赖。这三件事决定你走哪条路。

你的情况建议路线理由第一件该做的事
只想先跑一遍回测,不想申请任何账号pip install lumibot + Yahoo 免费日线官方最简单的一条路径,不需要券商也不需要 API Key安装与依赖体量确认 Python 版本与依赖重量
想试 AI Agent 策略从仓库分支装 version/4.5.92,并准备模型 KeyREADME 的 AI 示例明确要求该分支;默认模型是 gemini-3.5-flash-lite先读权限分界,决定哪个 agent 允许下单
要接自己的券商账户自托管 + 券商 API Key(paper 模式起步)官方支持 Alpaca / IBKR / Tradier / Schwab / Tradovate / ProjectX / Bitunix / Polymarket 与部分 CCXT券商矩阵确认你的券商与资产类别
只想要数据或做指标研究,不想长期维护进程先用 EasyClaw 技能路线为看几个指标而部署一套常驻框架并不划算先看本页「免部署 demo」段落,再看数据源与路由了解免费取数边界
目标是 A 股/国内市场的程序化交易先不要用 LumiBot它的数据源与券商清单以美股、期权、期货、外汇、加密为主,不覆盖 A 股券商通道先确认标的市场,再换工具组合
不想自己维护调度与日志官方托管的 BotSpot数据、并行回测、券商连接、调度、监控、告警、kill switch 由平台承担注意这是付费商业服务,与开源代码是两件事
想在期权上做多腿策略自托管 + 支持整包提交的券商多腿是原子提交、fail closed:券商不支持就整单拒绝下单与成交的多腿一节
一个容易被营销文案带偏的点:「同一份代码从回测到实盘」说的是策略类复用,不是「回测结果可以直接搬到实盘」。数据源、券商行为、现金事件三处都可能不一致,官方为这三处各写了一份文档。具体差异见回测与实盘一致性
免部署 demo

如果只是想拿数据、算指标,交互长什么样

下面这张是本机 EasyClaw 的实际对话截图(与本站 TradingGym 研究站同一批实拍素材)。它演示的是「技能路线」的操作形态:不用建项目、不用装依赖、不用管进程。它不是 LumiBot 的运行结果,也不代表 LumiBot 的能力边界——LumiBot 侧要自己配置数据源与券商,并按策略代码去调用它们。

这张图能说明什么、不能说明什么:它能说明「取数、算指标、跑一次简单回测」这类研究任务,用 LumiBot 之外的技能路线成本极低;它不能说明技能路线等同于 LumiBot——那张回测截图里没有一行来自本项目的代码,也没有券商委托、没有 is_filled 判定、没有订单生命周期。另外提醒:不要把任何券商的真实 API Key 粘贴进对话或截图;LumiBot 侧的凭据也不要提交到公开仓库。
选型

谁适合用它,谁应该换别的工具

判断标准不是「它功能多不多」,而是「你的市场、账户类型和运维意愿是否匹配」。

适合:已经有明确的规则,需要一个能落地的执行框架

你写得出 Strategy 子类,也知道要在哪个生命周期钩子里下单。LumiBot 提供的是订单对象、券商适配、回测引擎和产物,而不是替你决定买什么。

适合:想研究 AI Agent 与确定性规则如何混合

官方示例里既有纯 Python 规则策略,也有「研究员 + 看多 + 看空 + 交易员」的团队形态,还有 5 份确定性 .rules.json 作为闸门。这类混合形态在别的框架里较少见。

适合:能接受美股/期权/期货/外汇/加密这套市场范围

券商与数据源都围绕这些市场。如果你要做的是 A 股,框架本身不提供对应通道。

不适合:把「回测曲线好看」当成结论的人

官方自己在指标时间安全的文档里写了「不要从前缀回归外推保证」。任何 AI 交易演示,只要没给出 is_filled 级别的成交证据,就还停留在「提示词演示」阶段。

不适合:不想读英文工程文档的人

真正有价值的信息(订单语义、现金会计、时间安全、券商行为表)都在仓库 docs/ 里以英文工程笔记形式存在,含大量「尚未验证」的自我限定。跳过这些直接看示例代码,很容易得到过度乐观的印象。

不适合:需要托管且不想付费的团队

官方托管 BotSpot 是商业服务;开源自托管意味着调度、日志、告警、密钥保管与进程守护都要自己解决。

FAQ

关于 LumiBot 的高频问题

以下回答基于 2026-09-22 对官方仓库、PyPI 元数据与本机实测的核对;涉及代码行为的以官方仓库实现为准。本站未实盘下单,不做收益声明。

LumiBot 到底是什么?和 Backtrader 这类回测库差在哪?

它同时是回测框架券商执行框架:同一份 Strategy 子类既能跑历史回测,也能连上券商账户提交真实委托;它额外内置了一套 AI trading agent 运行时,agent 可以在策略循环里被调用、可以持有记忆、也可以在权限允许时直接下单。Backtrader 一类的库主要解决「怎么回测」,LumiBot 还多了一层「怎么把订单递给券商、怎么记录 agent 的决策」。以上对照依据 README 的能力表与仓库目录结构,具体差异以官方文档为准。

为什么我 clone 下来的没有 main 分支?

因为它的默认分支就是 dev,直接查 /branches/main 返回 404。仓库里另有一个 master,最后提交停在 2025-12-18,提交信息是 "Create CNAME",用途是 GitHub Pages,不是开发主线。所以「按惯例切 main」在这个项目上会失败——按 README 做就是对的。

PyPI 上的版本和 README 说的不一样,我该装哪个?

两个都是官方的,只是用途不同:pip install lumibot 拿到 PyPI 最新 4.5.91(2026-09-06 上传),适合跑传统规则策略的回测;README 的 AI 快速上手写的是从仓库分支 @version/4.5.92 安装,因为那一版当时还没发到 PyPI。建议:先在 venv 里装 PyPI 版跑通最小回测,确认环境没问题再决定要不要切到分支版。切之前把 commit 记下来,方便回退。

它到底是 GPL-3.0 还是 MIT?能商用吗?

本站核到的事实是:GitHub 与 setup.py 写 GPL-3.0,README 徽章也是 GPL v3;而 PyPI 4.5.91 的 wheel 元数据写 License: MIT 且带 MIT classifier;同一个 wheel 里实际携带的 LICENSE 文件内容却是 GPL v3 全文。这是发布物自身的口径不一致,不是本站的推断。本站不提供法律意见,也不替官方下结论。涉及商用、二次分发或修改后闭源,请以官方 LICENSE 文件与你所在法域的实际规定为准,必要时咨询专业人士。详见许可与商业边界

AI Agent 说它买了,我怎么确认真的成交了?

看三个东西:①下单前 agent 是否在同一轮里读过账户组合、持仓和市价(缺了就只会得到 ORDER_READINESS_REQUIRED,不会下单);②提交后是否有订单标识符;③最终状态里 is_filled 是否为真。提交成功、接口返回 200、轮询 120 秒超时,都不能当作成交。官方在工具文档里把这句话写成了硬规则,也是本站判断任何「AI 自动交易」演示的第一道筛子。

回测结果可信吗?会不会有未来函数?

官方自己公开过一个回归案例:旧实现按整个回测区间一次计算指标,只在策略时间取索引,一个 offset=-1 的 SMA 在「次日收盘从 30 变 3000」时从 25 变成 1510。现在的实现改成先按策略时间截取前缀再计算,并按观测值摘要缓存;独立时间窗要求显式时区偏移、且拒绝越过策略时间的 end。但官方同时列出仍未证明的部分(适配器相关的已完成 bar、多指标独立复算、真实模型推理、长历史性能)。结论:机制比过去安全,但不要把它当成「我的回测一定没有未来函数」的保证。详见未来函数与时间安全

它支持哪些市场?能用来做 A 股吗?

官方描述覆盖股票、期权、期货、外汇、加密与预测合约(Polymarket)。券商与数据源清单都围绕这些市场组织。按本站核到的证据,它不提供 A 股券商通道,也没有 A 股数据源实现;如果你的目标市场是 A 股,需要换工具组合。这也是本站对比页要如实区分两件事的原因:EasyClaw 侧的技能路线里有富途 OpenAPI 委托东财模拟组合,覆盖的市场与形态和 LumiBot 不同。

我需要付钱吗?

开源代码本身可以自己部署;但运行成本可能来自三处:①数据源——Yahoo 免费日线可用,更深的期权/期货历史要买(官方推荐 ThetaData,属可选 extras);②模型调用——AI agent 每轮决策都会调用模型,默认 gemini-3.5-flash-lite,需要自己的模型 Key;③托管——官方 BotSpot 是付费商业服务。README 里有 affiliate 声明,说明部分 provider 链接与优惠码可能支持项目开发;本站不复制任何优惠码或推广链接,也不替官方算成本。

下一步:agent 提交订单之后,到底怎么判定成交?

这一页把「能不能下单」拆成了权限、就绪检查、成交判定三段。其中最容易出错、也最容易被演示视频带过去的,就是第三段——先看它。