大作手Snow

52 倍,还是 96 XBT:从 17 万笔原始成交里反推 bwjoke 的 6 年系统

Snow2026 年 4 月 18 日· 13 分钟阅读· 5,162

GitHub 上一个交易员 dump 了 BitMEX 六年全量账户(1.84 → 96.39 XBT,52 倍)。作者没写策略文档,我们用 DuckDB 全量跑了 173,058 笔成交和 1,209 个仓位周期,反推他到底怎么做到的。

四月中旬,一个 GitHub ID 为 bwjoke 的交易员把他在 BitMEX 从 2020 年 5 月到 2026 年 4 月的全量账户数据 dump 成 CSV 放上了仓库,14 个文件,85 MB。173,058 笔成交,43,214 笔订单,17,099 条钱包流水——每一笔都带 BitMEX 原始 orderID 和 execID,可核验。

账户从 1.84 XBT 起步,6 年后滚到 96.39 XBT,账面收益倍数 52.4×。这还不算期间已经提现走的 66 XBT(按当下 BTC 价格约 560 万美元)。

这个仓库和我们 dingdingtao 想做的是一件事——把交易透明化到可审计级别,不靠截图,不靠 PPT,直接开放原始 API 数据。区别是他是一次性 dump 六年,我们是实时同步并配复盘。

但作者没写任何策略文档。没有博客,没有推特 thread,没有 README 告诉你"我的系统是什么"。想学他,只能从 173K 成交里反推

这一篇就干这件事。


前言:证据强度约定

这不是作者亲口说。下面每条结论都会标注证据强度

  • :可以从全量数据直接量化证明,容错空间小
  • :数据支持,但有多种解释路径
  • :数据能看出倾向,但不能排除其它解释,只作为线索

所有数字都对应 /tmp/bwjoke-btc/analysis/ 下的脚本输出,SHA256 已校验。后面附完整脚本和原始数据位置。


执行摘要(5 条最稳的结论)

  1. 摆动交易为主,不是日内也不是长线 ● 中位持仓 19.6 小时,p75 为 2.5 天。60% 的仓位周期在 24 小时内闭合,33% 在 1–3 天。
  2. 极度偏多,空头是对冲不是主攻 ● 1,209 个仓位周期里 Long 占 73%,贡献 83% 的利润。Long 胜率 65.3% > Short 56.5%。
  3. Limit 单 + 分批建仓 + 几乎不用硬止损 ● Limit 占成交 65%,Market 34%,Stop 单仅 0.6%。94.5% 的仓位周期涉及多次加仓。
  4. 利润极度集中在一个牛市年(2021) ● 2021 年一年贡献 +56.3 XBT 已实现 PnL,占全期 60%。2022 熊市只做了 +2.5 XBT,基本是"活着"。
  5. 2024 起频次骤降,演化为持币 + 减半期反叙事操作 ◐ 2024 全年仅 20 个仓位周期,2025 仅 2 个。2024-04 减半当周作者反而单边卖出(Sell 订单数是 Buy 的 55 倍)。

一、数据全景

6 年资金曲线与回撤

上图是 2020-05-01 到 2026-04-17 的 XBT 本位资金曲线(对数轴)。不是美元曲线——作者本位是 BTC,以 BTC 数量衡量。

指标数值
起始(baseline)1.83953943 XBT(2020-05-01 第一次完成入金后)
终值96.38685218 XBT
累计倍数52.40×
CAGR(XBT 本位)+96.5%/年
累计提现66.00 XBT(约 $5.6M @ $85k BTC)
累计入金1.77 XBT 后续补充
活跃天数1,884 / 2,177 = 86.5%(有成交的天数)
成交笔数173,058
订单笔数43,214
交易品种数68
仓位周期(FIFO 闭合)1,209

关键注意:累计提现 66 XBT 远超补充入金 1.77 XBT。这意味着六年里作者真实地把赚的 XBT 提走了,这不是纸面复利游戏。


二、核心指标表

维度数值解读
胜率62.9%1,209 个周期里赢 760 输 449
盈亏比1.67均盈 +0.367 XBT / 均亏 −0.374 XBT
期望值+0.093 XBT / 周期每次出手正期望值约 0.01 BTC
最长连胜29 笔
最长连败9 笔
Sharpe(XBT 日度年化)1.24合格
Sortino(XBT)1.34
Calmar(XBT)1.20MaxDD 纳入的性价比
最大回撤(全期)−80.6%来自小账户期(详见下文)
日度波动率(XBT)2.4%
最差单日−41.2%2020-06-25(小账户期)
最差单月−57.2%2020-06(小账户期)

胜率 62.9% + 盈亏比 1.67 的组合,数学上意味着每次交易正期望 0.68 个"单位"利润——在任何量化书里都是"有 edge"的数字,不是运气。但这个 edge 是怎么来的,是下面十节要拆的事。


三、时间框架:他是"日内"还是"长线"?

这是反推最重要的一步——把持仓时长分布画出来,策略性质基本就定了。

持仓时长分布直方图

1,209 个仓位周期按持仓时长分桶:

  • < 5 min:19 笔(1.6%)
  • 5-60 min:89 笔(7.4%)
  • 1-4 h:157 笔(13.0%)
  • 4-24 h:395 笔(32.7%
  • 1-3 d:278 笔(23.0%)
  • 3-7 d:125 笔(10.3%)
  • 7-30 d:118 笔(9.8%)
  • > 30 d:28 笔(2.3%)

分位数:

  • p25:5.1 小时
  • p50:19.6 小时
  • p75:2.5 天
  • p90:8.4 天
  • p99:59.1 天

→ 结论 ●:这是典型的 Swing trade / 摆动交易。约 55% 仓位在 24 小时内闭合,35% 在 1-7 天,10% 拖得更长。既不是日内剥头皮(那需要 p50 < 1 小时),也不是头寸交易(那需要 p50 > 1 周)。

时间框架随年份的漂移

交易频次与持仓时长随年份变化

更有意思的是时间框架随时间推移在变长

年份仓位周期数中位持仓
202041012.6 小时
202140222.7 小时
202221130.1 小时
202316317.8 小时
20242020.1 天
20252180 天
202613.4 天

2020-2023 每年 160-410 个仓位周期,中位持仓在 12-30 小时之间。2024 开始骤降到 20 个周期,中位持仓跳到 20 天;2025 只开了 2 个周期,中位 180 天

→ 结论 ●:作者在 2024 之后基本退出高频摆动,进入持币为主 + 极低频摆动的模式。这和大账户进入成熟期后"保存本金 + 吃 beta"的常见路径一致。


四、按年收益拆解

按年 XBT 本位收益率
年份起始 XBT终值 XBT收益率(XBT)年内 MaxDD
2020(5月起)1.7710.54+495.6%−80.6%
202110.6866.86+526.0%−43.5%
202267.0369.40+3.5%−19.1%
202369.4479.78+14.9%−4.8%
202479.7982.74+3.7%−8.3%
202582.7893.34+12.8%−4.3%
2026(到 4月)93.3496.39+3.3%−0.1%

2021 一年把账户从 10.7 做到 66.9 XBT,贡献了 6 年总利润的约 66%。2022 熊市做回 +3.5% 算是"活着"。2023 之后进入"稳稳吃 beta + 偶尔开单"的节奏,年年 XBT 本位正收益,但不再追求倍数。

已实现 PnL 来源分年(walletHistory 口径)

年份RealisedPNL(XBT)Funding(XBT)合计
2020+8.770.00+8.77
2021+56.320.00+56.32
2022+2.470.00+2.47
2023+10.440.00+10.44
2024+2.54+0.42+2.95
2025+9.59+1.02+10.61
2026+3.07−0.03+3.05

资金费率贡献非常小(2024-2026 累计 +1.4 XBT),说明他不是 funding / basis 套利者——这条排除了一种假设。


五、多空偏好

多空笔数与利润贡献
方向仓位周期胜率累计 PnL
Long880(73%65.3%+93.07 XBT
Short329(27%)56.5%+18.73 XBT

→ 结论 ●

  • 笔数上 Long : Short = 约 2.7 : 1
  • 利润贡献 Long 83% / Short 17%
  • Long 胜率比 Short 高 8.8 个百分点
  • 结合 2024 之后演化为持币—— 作者骨子里是多头,空头用作对冲或高位减仓,不是主战场

这和 BTC 6 年本身长期向上 beta 是一致的。先顺 beta,再用空头做战术,而不是试图做对冲中性。


六、品种选择

总共 68 个交易品种,但贡献极度集中:

Top 10 品种盈利贡献
品种仓位周期累计 PnL胜率中位持仓
ETHUSD211+43.98 XBT62.6%12.5 h
XBTUSD561+41.12 XBT59.9%13.3 h
LTCUSD59+8.08 XBT59.3%22.2 h
XRPUSD76+4.51 XBT67.1%15.2 h
DOGEUSDT26+4.20 XBT76.9%1.5 d
DOGEUSD47+2.78 XBT68.1%3.6 d
TRXH2110+0.77 XBT60.0%1.7 d

两个违反直觉的观察

  1. ETHUSD 贡献 > XBTUSD。虽然 XBTUSD 成交笔数是 ETHUSD 的 2.6 倍(561 vs 211 个 cycle),但 ETH 的盈利总额反而略高。ETH 效率更高。可能原因:ETH 波动率高于 BTC,做对了放大器效应更强。

  2. 山寨贡献小但胜率不低。DOGEUSDT 胜率 76.9%、XRPUSD 67.1% —— 不是"山寨一把梭被套",而是小仓位试水,做对就跑。

另外 68 个品种里有大量季度合约(XBTZ20 / XBTH21 / ETHM21 / TRXH21 等)。这些多数仓位周期少、交易量小、PnL 贡献 < 1 XBT —— 更像策略试验或小额对冲,不是主力。


七、订单类型:他是挂单派还是追市价派?

成交订单类型占比

160,413 笔 Trade 成交按 ordType 分布:

ordType笔数占比
Limit104,46665.1%
Market54,86534.2%
Stop1,0510.66%
StopLimit310.02%

订单生命周期(43,214 笔订单):

  • Filled: 31,233(72%)
  • Canceled: 11,780(27%)
  • Rejected: 186(0.4%)
  • New: 15

滑点(Limit 单,avgPx vs 委托 price):

  • 均值:−1.55 bps(负 = 对作者有利)
  • 中位数:0 bps

→ 结论 ●:作者是挂单派,65% 成交来自 Limit,均撤单率 27%(说明他主动调整挂单)。Limit 的平均滑点为负——他的 Limit 大多精确成交,甚至有轻微的做市返佣效果。

Stop 单只有 0.66%。"几乎不用硬止损"是这份数据里最反直觉、也是最关键的一条结论。主流教科书说"新手的第一条纪律是带止损",而这个做到 52× 的账户几乎不用它。

不用硬止损,怎么做到胜率 62.9% + MaxDD 近年一直 < 20% 的?下一节解释。


八、仓位管理:分批建仓 + 分批减仓,而不是一枪 all-in

如果不用硬止损,风控靠什么?答案是仓位管理 + 分批节奏

  • 94.5% 的仓位周期涉及加仓(不是单进单出)
  • 平均每个周期 64.3 次"加仓"动作(FIFO 拆分粒度)
  • 中位数 18 次加仓,p90 为 140 次,p99 为 843 次

这个"加仓"数字这么大有两个原因:

  1. FIFO 分拆得细——一个名义仓位被多次部分成交
  2. 确实存在金字塔式加仓——随行情运行逐步堆仓

对照"一笔仓位 = 一次下注"的朴素认知,作者的风格是:一个判断里分十几次进、十几次出。这让单次"错判"的代价被稀释——你不是在等止损被触发,而是在仓位构建过程中就持续调整方向。

这和 Stop 单占比 0.66% 是一对互补证据。他不用硬止损,是因为他从来没有过"一次性全仓位"需要止损。


九、什么时候下单?

UTC 小时 × 星期几成交热图

按 UTC 小时聚合成交数:

  • 最活跃:14-20 UTC(每小时 7,800-9,300 笔)
  • 最低谷:02-05 UTC(每小时 4,400-5,100 笔)
  • 活跃 / 低谷 比 ≈ 1.8×

UTC 14-20 = 北京时间 22:00-04:00 = 美东时间 09:00-15:00。

→ 结论 ◐:时段有明显偏好,不是 24h 机械均匀:

  • 作者很可能是美东作息中国晚间作息
  • 下单集中在欧美盘 + 美盘开盘后
  • 亚洲早盘(北京 10:00-16:00 = UTC 02-08)反而是最冷的时段
  • 不是全天候算法——如果是纯程序化,小时分布会更平坦

按年的下单节奏

2024 之后每年只有 1-20 个仓位周期,意味着作者不再是每天交易者。他变成了偶尔开单 + 长期持币 + 定期提现的一个状态。


十、重大事件日:他怎么应对?

重大事件日 XBTUSD 买卖行为

选了 8 个事件日,统计每个事件 ±3 天窗口内的成交:

事件日期窗口 fillsXBTUSD Buy 笔XBTUSD Sell 笔倾向
519 大崩2021-05-193,198434655高频双向,略偏空
LUNA 崩溃2022-05-09550153194略偏空
三箭爆雷2022-06-181335几乎停手
FTX 崩溃2022-11-0837995142略偏空
BTC 新高 73k2024-03-1427164153高位卖出
第 4 次减半2024-04-202594223单边卖出
亚洲抛售日2024-08-0534697249继续卖
关税冲击2025-04-07327206121抄底买入

两个最有意思的点:

减半当周 Sell / Buy = 55 : 1,几乎单边卖。这和所有"减半利好"叙事相反。

关税冲击当周 Buy / Sell = 1.7 : 1,他在恐慌里抄底——不是被动持币,是主动加仓。

→ 结论 ◐:作者有独立判断,不被减半叙事绑架,也不在顶部追高。"高位减仓 + 真实恐慌时买入" 是贯穿事件日的行为模式。

但这是反推,可能有其它解释:

  • 减半前可能是提前买好了,减半当天只是获利了结
  • 关税冲击周 Buy 也可能是被动平空仓
  • 事件日的 Sell/Buy 笔数不等于净仓位变化

证据强度只标 ◐ 中。


十一、盈亏分布:他靠什么赚钱?

单次交易盈亏分布直方图

1,209 个仓位周期的 PnL(XBT)分布:

  • 中位 PnL:+0.016 XBT
  • 均值 PnL:+0.093 XBT
  • 最大单笔盈利:+6.86 XBT(单笔够账户翻近 7%)
  • 最大单笔亏损:−2.71 XBT
  • 盈利最大单笔的 10 倍:盈利前 10 笔合计 +28.4 XBT(占总利润 25%)

→ 结论 ◐:形状明显右偏(长尾在盈利侧):

  • 小额盈利数量多(右侧高频柱)
  • 极大亏损少(左侧尾巴短)
  • 极大盈利偶发(右侧长尾)

这是 Trend following / Swing 的典型 payoff——赢要赢大,输要输少

但要小心一个解读偏差:均值 0.093 × 1,209 = 112 XBT,这对得上 FIFO 口径总利润 +111.8 XBT。它比 walletHistory 里 RealisedPNL 汇总的 +93 XBT 多 ~18 XBT,差异来自 execComm(手续费/返佣)的时点差异,以及 XBT↔USDt 换算方式不同。走 walletHistory 才是作者对自己的 P&L 口径;FIFO 是我们自己重算的。


十二、反推的系统

把上面十节浓缩成一张"系统画像"卡片。每条标注证据强度。

● 强 - 时间框架 摆动交易(swing),中位持仓 19.6 小时,以 4h - 3d 为主战场。

● 强 - 方向偏好 结构性偏多。Long 73% 笔数贡献 83% 利润;Long 胜率明显高于 Short。

● 强 - 进场方式 Limit 挂单为主(65%),撤单率 27%;Market 占 34% 用于快速应对。几乎不用 Stop 单(0.66%)

● 强 - 仓位管理 分批建仓 + 分批减仓,94.5% 的周期涉及加仓;不存在单笔 all-in。风控通过仓位结构而非 Stop 单实现。

● 强 - 盈利模式 右偏 payoff(赢大输小)。单笔期望 +0.093 XBT,胜率 62.9%,盈亏比 1.67。

● 强 - 周期与市场 强依赖 BTC 大周期 beta。2021 牛市贡献 66% 利润;2022 熊市勉强正收益;2024-2025 进入"持币 + 低频摆动 + 定期提现"模式。

◐ 中 - 品种 XBTUSD / ETHUSD 双主力,ETH 效率甚至更高。山寨和季度合约只是试验,不是主力。

◐ 中 - 时段与风格 UTC 14-20 活跃(美东作息或中国晚间);不是 24h 程序化,手动主导。

◐ 中 - 事件响应 反减半叙事(2024-04 单边卖),真实恐慌时抄底(2025-04 关税冲击)。有独立判断。

○ 弱 - 策略细节 是否套利 / 基差 / 事件驱动——funding 贡献极小(6 年累计 +1.4 XBT),排除了 basis arbitrage 为主业的可能。但 2020-2021 年大量季度合约(XBTH21/TRXH21 等)交易说明他可能尝试过基差套利,只是不是主力。


十三、这套系统能学吗?

能学到的:

  1. 胜率 60%+ / 盈亏比 1.5+ 是一个可复现目标,不需要高到离谱。
  2. 分批建仓不用硬止损 是一条被数据证明的路径(前提是你能管住仓位不飞走)。
  3. BTC 本位思考 而不是美元本位——在牛熊周期都能保持正收益的关键是以币计价
  4. 90%+ 活跃天但每年主战场只打 200-400 次 —— 不是每天找机会,是每天在场、少数时候出手。
  5. 事件日不跟叙事。减半"利好"被数据证伪,至少对这位作者如此。

不能直接套用的

  1. 不用止损需要长年积累的感知。对没有分批建仓肌肉记忆的人,这是灾难。
  2. 2021 贡献 66% 利润说明这个账户对大牛市依赖很强。2022-2026 五年只做了其余 34%,数学期望对新手不漂亮。
  3. 小账户期的 −80% 回撤。如果 baseline 是 10 万美元而不是 1.84 XBT,这个回撤在心理上是扛不住的。

十四、对 dingdingtao 的启发

我们正在做的是实时版的同类项目——Binance / OKX 只读 API 同步、每笔订单可核验、每个仓位聚合可追溯。看完 bwjoke 的数据,有四件事是我们该做的:

  1. 提现数据要公开。"累计从账户提走了多少真金白银"比"累计收益率"更有说服力。资金曲线可以造假,链上提款不行。
  2. 按年指标卡。把胜率、盈亏比、MaxDD 按年切片展示,而不是一个"历史累计"。
  3. 仓位周期口径要规范。FIFO 聚合 + 多次加仓合并为一个 cycle,这是正确的"交易单元"。
  4. 品种贡献拆解默认要有。不要让读者以为主力是 BTC,数据可能告诉你是 ETH 或 SOL。

十五、局限 & 免责

  • 这是从数据反推,不是作者亲口陈述。任何"他的系统是 X"都有多重解读空间。
  • FIFO 聚合和作者自己的 P&L 口径有约 18 XBT 差异,主要来自 execComm 时点差。
  • 事件日窗口内的 Buy/Sell 笔数不等于净仓位变化——笔数只是频次,不代表方向净额。
  • 数据截止 2026-04-17。最近两年几乎不交易,不代表未来他还用同一套。
  • 本文不构成投资建议。一个账户的 52× 不能线性推导出"跟着做也能 52×"。

附录:数据与脚本位置

原始数据github.com/bwjoke/BTC-Trading-Since-2020 tag data-2026-04-18-fix2

我们本地校验过的 SHA256(可核对):

execution  2bcb46e6b81b7dab98a3bf570322e7e8581e204af650db7dd2141bc8c62228e1
order      3af35659903bf9b1dfdb4c4a5524da56d65981451919d884f7a71e08b09050c4
walletHist ba3cd4258296e9704202a2286a90e9324652f94549632418dbc19286e8bf14e0
equity     3a899533db0c50fa219344fbdee0df8260cee2c66435d4ee27ef2a21198d5ce9

分析脚本:我们跑在本地 /tmp/bwjoke-btc/analysis/,5 个 Python 脚本 + DuckDB。关键脚本分工:

  • 01_profile.py:DuckDB 一次聚合全量画像
  • 02_positions.py:FIFO 聚合成仓位周期
  • 03_risk.py:回撤 / Sharpe / Sortino / 连败分布
  • 04_timing.py:时段热图 + 事件日切片
  • 06_figures.py:10 张 SVG 图,按 dingdingtao 设计令牌配色

原始 CSV 备份:已冷备到 Supabase Storage external-datasets/bwjoke-btc-2020-04-18-fix2/(含 analysis 脚本打包),以防原仓库哪天下架。

全部可复现。如果你在数据里发现了与本文不同的结论,我很乐意听——这是反推,不是定论。

分享
相关文章