Browse by type
English | 中文 | 日本語 | 한국어 | العربية | Español
![]()
一条命令,让你的智能体具备完整交易研究能力
官网 · 文档 · News · Features · Shadow Account · Demo · Quick Start · Examples · API / MCP · Roadmap · Contributing
⚠️ 安全警告: X 账号
VibeTrading_HKU、Virtuals 项目101845及代币合约0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4均非 Vibe-Trading 官方。我们从未发行或背书任何代币或 meme 币。请勿购买、连接钱包或签名。详细说明。
2026-09-09 🚀 v0.1.15 发布 (发布说明,pip install -U vibe-trading-ai):自 0.1.14 起 551 个 commit、162 个已合并 PR,来自 35 位贡献者。这一轮的主题是「数据要讲清楚自己是什么」——而其中三个最大的修复其实是同一个 bug 换了三身衣服:一个默认值把缺失悄悄替换成看起来合理的数,而这个数在下游与真实观测完全无法区分。Alpha Zoo 的 NaN 契约从各个 alpha 内部上移到了 registry:用 np.where 对比较式分支的 alpha 永远看不到 NaN——比较结果是 False——于是把某一根 bar 上所有声明输入置空之后,462 个 alpha 里仍有 84 个照样返回了数字,而 dropna() 正是把缺口挡在 IC 之外的机制,所以这些常数都被当成真实信号消费了。现在 registry 会在任一声明依赖缺失的 bar 上把输出掩成 NaN,同一套扫描之后一个都不剩(#1377,关闭 #1376)。warmup 那一半明确留开而不是悄悄带过:仍有 52 个 alpha 在自己声明的 min_warmup_bars 之内就出值,而 registry 级的 warmup 掩码会连带把「只是把窗口多声明了两三根」的 alpha 也一起抹掉,所以这一半需要的是一个方向决策,而不是 52 个 PR。同一类的第二例:pandas 至今仍把 pct_change() 默认为前向填充,于是一根缺失的收盘价变成一个从未发生过的 0.0% 收益;四个 PR 各修了一个调用点,而穷举清查找出10 个文件里的 24 处——其中两处就在那些 PR 正在改的文件里。第三例:futures 数据源链点名 tushare 和 akshare,而两家都根本没实现期货端点,于是每一个合约都掉进了 A 股股票端点。AKShare 现在通过免 token 的新浪日线端点提供中国合约(含具体合约与主力连续,已在上期所/中金所/广期所/郑商所四家实测),而全球合约返回空、落到 local,不再被当成股票定价(#1395)。价格本身现在也会标注自己所用的复权口径;口径从未对真实返回体实测过的数据源,报 unknown 而不是猜一个(#1317)。实盘侧新增五处 fail-closed:券商持仓查询返回 API 错误、halt sweep 中途收到错误信封、flatten 闩锁跨 runner 重启、未决 Alpaca 委托按精确 client ID 跨重启找回、以及买入限价单按「报价与限价中较差的一侧」定量(两条通路都改)。回测侧:期权信号改在下一根 bar 成交,不再用生成信号的那根 bar 的价格;期权空头腿占用保证金并按购买力把关开仓;永续资金费在 8 小时以上周期按 bar 跨度结算;超额再平衡篮子按比例缩放而不是直接中止;停牌持仓按最后成交价而非成本价估值。Agent 循环:某次会话已经成功取到财报、资金流、融资盘和研报数据,随后这些结果为腾出上下文被清除,而去重账本仍拒绝重新获取——单次运行被拦 44 次,最终对已经拿到过的数据回答「未取得基本面数据」;现在结果按精确调用身份对账,无进展预算也改为计观测而不是计活动量。本轮新增: 英国股票(LSE .L/.IL,SDRT 按「只在买入侧」建模——两侧都收会把每一次往返成本高估一半)、Zerodha Kite Connect 作为第 14 家券商(因 Kite 不暴露任何运行时实盘判据,按红线封顶为模拟盘 + 只读)、只读多券商组合(Web / REST / CLI / agent 工具四条入口,刷新失败的数据源是「被排除在合计之外的错误」而不是陈旧缓存)、Quant Library 新增 15 项(Heston、层次风险平价、Copula、VPIN/Roll/Amihud/Kyle 微观结构、含有限差分希腊字母的障碍期权、ISDA CDS、关键利率久期、Vasicek、因子 IC、Ornstein-Uhlenbeck、Ulcer/Pain、事件研究检验、分组净化交叉验证)、巴西葡萄牙语成为第 8 种语言、只读的 Nobitex 与 Wallex、日历触发的部分再平衡、swarm 重放与重试,以及一套离线 evals 校验器——所需插桩缺失时它输出 NOT_EVALUABLE 而不是判过。感谢本轮全部 35 位贡献者!
2026-09-09 🛢️ 在 A 股规则下按人民币结算的美国原油合约,以及一份把缺失价格算成 0% 收益的策略模板:CL2412.NYMEX 匹配不上任何符号规则——裸的带月份写法(CL2412)能中,带场所的写法(ES.CME)也能中,唯独合约真正的写法两条都不中——于是落到 a_share 默认值,按 T+1、不可做空、以 CNY 结算跑完。中国这一侧的镜像问题是 Tushare 自己的交易所拼写(#1396,关闭 #1394);两侧现已都能正确分类。另一件事:pandas 的 pct_change() 至今默认前向填充,于是一根缺失的收盘价会变成一个从未发生过的 0.0% 收益,紧接着的那根把两天的涨跌当成一天报出来。两个 PR 各修了一个调用点(#1397、#1398);把 skills 穷举一遍,找到 10 个文件里的 24 处,其中两处就在这两个 PR 当时正在改的文件里,现已加上全仓守卫把这一类关死。中国期货回测现在还会声明哪些品种是按通用默认值定价、而非查表得来的——rb 真实的保证金率就是 0.10,和默认值同一个数,「查到的」不能读起来像「假设的」(关闭 #1393)。同时合并:ML 滚动训练示例清除未来标签(#1392)、无任何因子观测的标的不再进入 TopN(#1399)、情绪因子正交化不再对自己填出来的 0 做回归(#1400)。
2026-09-08 🧪 在输入为空的那根 bar 上照样打印出数字的因子,以及一次返回瑞典比特币 ETP 的现货黄金搜索:Alpha Zoo 的契约是让 NaN 穿过 warmup 与缺失数据,但用 np.where 比较分支的因子永远看不到 NaN —— 比较结果是 False,三元表达式于是落到它的常量分支。把 462 个因子逐一测过,在某根 bar 上清空其申报的全部输入后,仍有 84 个因子照样给出数字;而把缺口挡在 IC 之外的正是 dropna(),所以这些常量被当成真实信号消费掉了。守卫现在放在 registry 而不是每个因子里 —— 只要该 bar 上有申报依赖缺失,输出就被置为 NaN —— 同一套测量在修复后一个都测不出来(#1377,关闭 #1376)。契约的另一半 warmup 窗口也修了 11 个因子(#1379、#1380、#1381、#1382、#1383)—— 用同样方式测这一半,仍有 52 个因子在自己申报的 min_warmup_bars 之内就出值。registry 级的 warmup 屏蔽会连带清空那些只是申报保守的因子的行,所以这半边暂不合并,写在这里而不是悄悄带过。另外,search_symbol("XAUUSD") 返回的唯一候选是 VALOUR-BTC-0-SEK.ST —— 一只瑞典比特币 ETP —— 并就此锁定了整轮运行的标的身份;金属/外汇货币对查询现在被当作精确标的断言,只保留写法不同但两条腿相同的候选(#1282)。修复: 公告日期不带时刻,因此在日内 K 线上,一份财报从它自己公告日的第一根 bar 起就可见 —— 整整一个交易日的前视。日内帧现在直接拒绝,fundamental_subdaily="next_day" 是显式的选择项(关闭 #1387)。写成通用表头 | 指标 | 数值 | 的指标断言能绕过在散文里会拒绝同一断言的分析闸门(#1375);镜像的错误则相反 —— 被当作公式变量使用的价格词 close/SMA50 > 1 被读成了断言的价格(#1378,关闭 #1354)。粘贴进来的券商代码(HK.00700、US.AAPL、SH.600519)根本扫不出符号,于是每个行情工具都回答 identity_required(#1384)。三个 Archimedean copula 的 CDF 在强相依参数下返回错误的极值 —— Clayton 0.0、Gumbel 1.0、Frank inf —— 现在改在对数空间计算,并用 2500 位精度的参照在 θ ∈ [-5000, 5000] 上逐点校验(#1386,关闭 #1385)。超过品种手数上限的 MT5 委托会被静默截断后发出,没有限价的 eToro 限价单挂在盘上永不触发却显示为已接受,futu K 线沿用了未声明的复权口径,BTCUSDT 走的是 A 股规则 —— 在一个永续合约上执行 T+1 与禁止做空(#1388)。感谢 @cgycorey、@Shizoqua、@he-yufeng、@Robin1987China、@laiyierjiangsu、@aminak58 和 @nandofmike!
更早的新闻
apply_slippage 会刷新该子引擎自己的活动品种——于是 round_size 和 calc_commission 用的是最后一次同步进去的那个品种。50 盎司黄金按外汇 1000 单位的微型手计算,直接舍成 0;黄金期货被收了股指期货的费率制手续费(6.90)而不是它自己的定额(20.00);隔夜利息也按 100000 单位的标准手而非 100 盎司的金属手计算(#1370)。另外 _extract_product 读不出品种码里带数字、或末位字母恰好也是月份码的合约:6EZ4、6JH25、M2K、MYM2503、FESX2503 全部落到默认乘数 50——而 6E 的真值是 125000(#1369)。现在一律先对着乘数表按最长匹配解析,带月份的形式(M2KZ4)和前缀撞车(SILZ4 与 SI)一并覆盖。修复: 四个 Alpha Zoo 因子会在停牌日和自己声明的预热期内打印硬编码的 ±1 或 0——NaN 比较的结果是 False 而不是 NaN,三元分支于是落到常量上。min_warmup_bars 只是元数据、没有任何环节会裁掉那些行,真正把缺口挡在 IC 之外的是 dropna(),所以这些常量被当成真信号消费了(#1371、#1372、#1373、#1374)。用同一口径实测整个因子库,还有 82 个因子是同一形状;与其一个 PR 修一个,现在按 registry 级统一守卫记在 #1376。策略发现的证据行此前对整轮只解析一次仓位规模而不是按 regime 分别解析,且一格无法解析的基准值就能让该轮产出的全部证据行消失(#1368)。新增: 一个不断发起工具调用却拿不到新信息的运行,现在会在 8 轮后带着一条可见的恢复请求停下,而不是把整个预算耗在路径猜测上——被报告的那一次花了约 35 轮反复猜同样被拒的路径。相同调用从第二次失败起才被拒绝,而不是第一次,所以限流或超时后的一次诚实重试仍然会跑(#1363,关闭 #1353)。感谢 @Shizoqua、@be-student 和 @nandofmike!close 不认 closed,于是零工具调用的 The stock closed at 412.35. 直接通过,而同一句编造的中文(该股收盘 412.35。)被拒。last traded at 和 quoted at 根本没有规则,中文侧则有镜像漏洞 —— 成交价 / 最新价 / 股价 / 收报 全部漏掉。两边词表现已补齐,英文形式必须跟 "at",成交量和并购措辞不会误判;新增测试断言两种语言对同一句给出相同判定,而不是各测各的。另一件事:某次会话成功取到了财报、资金流、融资盘和研报数据,随后这些结果为腾出上下文被清除,而去重账本仍拒绝重新获取 —— 单次运行被拦 44 次,最终对已经拿到过的数据回答"未取得基本面数据"。现在清除结果会同时解封该工具,账本按参数而非工具名计键,token 预算也真正计入工具调用参数,不再把 100 KB 负载算成十个 token(#1349、#1341、#1352,关闭 #1343)。修复: 在 aarch64 上,从 Web UI 发起的每一次回测都段错误 —— 沙箱资源限制在多线程服务进程 fork 出的子进程里执行 Python,这是 POSIX 未定义行为;现改为 exec 之后再施加(关闭 #1355)。GC=F 与 XAUUSD 被判为 A 股(#1280);BRK.B.US 等带点号的类别股取回空数据(#1351);满仓再平衡遇手续费超支时直接中止而非按比例缩放(#1344,关闭 #1274);百分点变动 —— 3.6pp、3.6 个百分点、250 基点 —— 被读成报价(#1346);BTCUSDT 这类合并写法的加密对无法识别,而现货铂金却被解析成并不存在的加密对(#1265);策略库历史在时间戳并列时返回最旧优先(#1347);Codex 适配器丢弃了提供方上报的模型名(#1348)。新增: 对话中先前给出的市场语境可用于收窄符号解析,由 VIBE_CONTEXTUAL_IDENTITY_CONSTRAINTS 控制(#1269);投委会 worker 拿到其提示词本就假定存在的基本面数据面板(#1345);基于录制对比的确定性 USD-M 容差校准(#1248)。感谢 @nandofmike, @atomfive, @thisisjun786, @cgycorey, @saju01, [@he-yufeng](https://github.com/he-yubrowse all types & interfaces →
$ claude mcp add Vibe-Trading \
-- python -m otcore.mcp_server <graph>