文章内容
2026/4/1 18:50:10,作 者: 黄兵
Weights & Biases (W&B) 工具介绍
Weights & Biases (简称 W&B 或 wandb) 就像是给你的量化交易程序装上了一个“飞行数据记录仪(黑匣子)”加“云端可视化仪表盘”。
它最初是为深度学习算法工程师设计的,用来记录模型训练的成百上千个参数和结果。但因为它极其强大的“参数记录”和“时间序列数据可视化”能力,现在被大量顶尖的量化团队用来追踪回测和实盘实验。
1. W&B 在你当前项目中的核心作用
在你当前的 AI 加密货币量化项目中,你面临的核心痛点是:参数多(扫描频率、阈值)、指标复杂(Token 消耗、胜率、滑点)、测试周期长且容易遗忘版本差异。W&B 完美解决这些问题:
可视化 Token 与收益的“性价比”:你可以把每次 AI 唤醒消耗的 Token 数量和当前账户权益(Equity)一起推送到 W&B。网页端会自动画出折线图,让你直观看到“降频到 15 分钟”后,资金曲线是否依然平滑,Token 消耗曲线是否显著下降。
自动绑定 Git Commit:这是最神奇的功能。只要你在运行 Python 脚本的环境里初始化了 W&B,它会自动抓取当前的 Git Commit ID 和未提交的代码差异(Diff)。你在网页上看图表时,点击一下就能知道这张图对应的确切代码版本,完美解决“不知道回滚到哪里”的问题。
参数配置台(Config):你可以把
min_ai_call_interval_sec、MA 斜率阈值、RSI 极值等写进 W&B 的 Config 里。每次跑完,网页上会自动生成一个表格,对比不同参数组合下的最终收益率。
2. 工作流升级:Markdown + W&B
引入 W&B 后,你的实验记录将变得极其严谨:
EXPERIMENT_LOG.md:记录**“主观意图”**(我为什么要把空仓扫描改为 15 分钟,我预期的风险是什么)。W&B 看板:记录**“客观数据”**(跑了 7 天,画出了 100 张图表,最终结果是多少)。
pip install wandb wandb login
运行 login 后,它会提示你打开浏览器注册一个免费账号,并提供一个 API Key 粘贴回终端。
第二步:在 main.py 中初始化配置
在你的程序入口处(比如 main.py 开始运行量化循环之前),定义这次实验的“变量”:
import wandb
# 初始化 W&B 实验
wandb.init(
project="crypto-ai-quant", # 项目大类名称
name="Exp-0401-ScanOptimization", # 具体的实验名称(建议和 EXPERIMENT_LOG 对应)
tags=["15min-scan", "AI-pruning", "OKX"], # 标签,方便以后按标签搜索
config={
"empty_scan_interval": 900, # 空仓扫描间隔 (秒)
"hold_scan_interval": 60, # 持仓扫描间隔 (秒)
"use_reversal_risk_pruning": True, # 是否启用剪枝逻辑
"ai_model": "codex", # 使用的 AI 模型
}
)第三步:在 PureAIReasoningStrategy 中记录数据
在你的量化主循环中(比如每次 K 线更新,或者 AI 执行完一次决策后),使用 wandb.log() 推送你想观察的指标:
class PureAIReasoningStrategy:
# ... 其他逻辑 ...
def process_tick(self, current_data):
# 你的原有逻辑:判断是否触发 AI
reversal_risk = self._has_reversal_risk(current_data)
ai_triggered = False
tokens_used = 0
if reversal_risk:
# 唤醒 AI 的逻辑...
ai_triggered = True
tokens_used = self.call_ai_and_get_tokens() # 假设你有一个获取消耗的方法
# 计算当前账户总资产或盈亏
current_equity = self.get_account_equity()
# 【核心步骤】将数据打点推送到 W&B 云端
wandb.log({
"Account/Total Equity": current_equity, # 资金曲线
"AI/Tokens Used This Step": tokens_used, # 单词 Token 消耗
"AI/Trigger Count": 1 if ai_triggered else 0,# 触发次数 (图表上可看密集度)
"Market/Current Price": current_data.price # 行情对照
})第四步:结束实验(可选)
如果是实盘 7x24 小时运行,不用管它;如果是跑历史数据的回测,在回测结束时加上:
wandb.finish()
4. 运行后的效果
当你运行修改后的代码时,终端会打印出一个 W&B 的网页链接。点击进去,你将看到一个非常惊艳的控制台:
Workspace:自动为你刚才
log的字典里的每一个键(如Account/Total Equity)生成平滑的折线图。Overview:显示你这次运行配置的
config参数。Code:直接展示你运行代码时的 Git 状态、Commit 记录,甚至会告诉你当前有没有未提交的脏代码(Dirty Tree)。
当你测试完 4H 降频版,接着测试 ATR 自适应止损版时,你可以在 W&B 的网页上选中这两次实验,它会把两条资金曲线和 Token 消耗曲线画在同一张图表上,孰优孰劣,一目了然。
评论列表