Skip to content

Repository files navigation

Cowback v0.4.0 · BTC EMA / Rolling VWAP 策略回测台

一个基于 Binance Spot BTCUSDT 日线的交互式策略研究站点。图表和普通回测优先读取 Binance 公共接口;离线参数优化使用带 SHA-256 数据指纹的冻结快照,保证结果可以复现。

策略与执行假设

  • 趋势基准可在 EMA 与 Rolling VWAP 之间切换,周期均可在 20–100 日之间调整;信号只读取第 t 日完整日线,并在第 t+1 日开盘成交。
  • EMA 使用收盘价递归计算;Rolling VWAP 使用窗口内 USDT 成交额之和 ÷ BTC 成交量之和,窗口包含当前信号日。
  • 收盘价高于所选趋势基准时目标为全仓 BTC;低于或等于趋势基准时默认持有现金。做空开关开启后,可建立不超过账户净值 100% 的合成空头。
  • 若设定窗口内发生快速反向成交,下一次反向动作需离开趋势基准指定比例;默认窗口 4 日、距离 0.2%。
  • 可选 ATR 反向规则使用 (收盘价 - 趋势基准) / Wilder ATR(N),周期可在 2–100 日调整,默认 ATR14,基础默认阈值为 +6 / -6 ATR;已有离线优化结果仍固定基于 ATR14。
  • 初始资金 10,000 USDT,支持小数 BTC。单边手续费默认 0.03%,单边滑点默认 0.05%。
  • 未平仓头寸按最后完整日线收盘价计值,不做虚拟平仓;闲置现金不计息。
  • 买入持有基准使用相同起点、初始资金和买入成本。

做空是以现货 OHLC 为价格参考的合成敞口,不包含借币利息、资金费率、保证金规则或强平机制,不能视为真实合约账户的精确模拟。

Binance 数据

站点使用 Binance Spot BTCUSDT1d、UTC K 线,并保留以下字段以支持后续成交量研究:

  • BTC 成交量与 USDT 成交额;
  • 成交笔数;
  • 主动买入 BTC 数量与 USDT 金额。

当前冻结快照覆盖 2017-08-17 至 2026-07-31,共 3,271 根完整日线。完整性检查未发现缺日或重复日;Binance 官方历史数据中的 2018-02-08 是一个提前结束的特殊日线桶,原始 OHLCV 已保留并在快照元数据中明确标记。

Binance 的现货成交量只代表该交易所和该交易对,不能直接等同于全球成交量,也不能据此推断散户人数。

离线参数优化

EMA 与 Rolling VWAP 使用互相独立、带校验状态的静态结果文件。两套优化器都固定关闭做空、开启 ATR 反向,并使用 10,000 USDT、0.03% 手续费和 0.05% 滑点。它们分别对每个“起始年份 → 2026-07-31”区间精确扫描:

  • 趋势基准周期:20–100,步长 1;
  • 反转窗口:2–10 日,步长 1;
  • 横盘距离:0.1%–2.5%,步长 0.1 个百分点;
  • ATR 上阈值:2.0–8.0,步长 0.1;
  • ATR 下阈值:2.0–8.0,步长 0.1。

每种趋势基准的每个区间共有 67,815,225 组参数,10 个区间合计产生 678,152,250 个区间评分。每份结果文件只保留每个区间的 81 个周期冠军和真正的全局前 10 名,共 910 条摘要。页面只在“某个起始年份 → 静态截止年份”或“全部历史”区间提供对应基准的 TOP5;其他任意连续年份仍可正常回测,但不会错误套用不匹配的优化结果。旧版右侧优化详情已隔离清空,留待下一版重新设计。

优化排名按样本内累计收益选择,属于同一历史样本上的大规模多重比较,过拟合风险很高。排名用于研究和生成候选假设,不代表未来收益;更严谨的下一步应采用训练/验证拆分、滚动样本外测试和参数稳定性分析。

页面能力

  • 所有合法数字输入会在停止输入 200ms 后自动重算,Enter 或失焦立即应用;无效中间态保留上一组有效回测;
  • 手动修改趋势周期只改变周期,点击离线 TOP5 才应用对应冠军的完整数值参数(包括榜单使用的 ATR14 周期),便于进行单变量比较;
  • 图表实例在参数变化时保持不变,只增量更新序列、标记与阈值线,并保留缩放和平移视野;
  • 可缩放和平移的日 K 线、EMA / Rolling VWAP、多空成交标记与半透明十字光标提示;
  • 时间对齐的 ATR 标准化距离和 Bollinger %B 副图;ATR 周期可在 2–100 日调整并直接参与开启后的 ATR 反向策略,提供 ATR14/20/50 预设;Bollinger 当前仍为观察指标;
  • 策略净值与 BTC 买入持有的 USDT 净值对比;
  • 收益、回撤、Sharpe、Sortino、Calmar、敞口、换手和交易成本等指标;
  • 按完整交易回合分组的成交审计和可调盈亏高亮;
  • 全历史、单年或连续自然年回测,以及所选趋势基准静态 TOP5 的一键应用。

本地运行与数据再现

需要 Node.js >=22.13.0

pnpm install
pnpm run dev
pnpm test
pnpm run data:binance
pnpm run optimize:plan
pnpm run optimize
pnpm run optimize:verify
pnpm run optimize:vwap:plan
pnpm run optimize:vwap
pnpm run optimize:vwap:verify

重新生成快照会改变数据截止日;只有重新完成全量优化并提交对应 manifest 后,新的优化结果才可视为完整版本的一部分。

本工具仅用于策略研究,不构成投资建议。历史回测不代表未来表现。

License

本项目采用 MIT License

About

比特币量化回测教学演示|Bitcoin Quant Backtesting Lab

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages