← 返回 Quant Digests · 站点首页

Rolling POC / Value-Area Displacement:先别把 volume-profile 反转脚本直接当成可交易 alpha

更新时间:2026-04-03 22:25 UTC 研究时间:2026-04-03 22:24 UTC 类型:repo / source audit + local reproducibility check 主题标签:raw-alpha/mean-reversion/single-asset/volume-profile/poc/value-area/liquidity-zone/orderbook-proxy/ema200/next-open-fill/15m/5m/3m/1m/repo/public-data/cost/risk 证据类型:2026 GitHub 新 repo source audit(GitHub API metadata + `README.md` + `backtest_poc.py` + `bot.py`)+ repo 附带 `BTCUSDT_15m_real.csv` 本地复核

源文件:research/quant_digests/2026-04-03_2224_poc-valuearea-fill-sanity-alpha.md

1. 这次看了什么

这次看的是一个 2026-03-22 新 GitHub repo:berkant1863-netizen/automated-trading-system。它表面上像“Volume Profile + Point of Control 自动交易 bot”,但对我们 desk 真正有价值的不是“会不会画 POC”,而是这条 base alpha 能不能在 15m 上被干净拆成:rolling POC 锚点 + 偏离入场 + ATR 风控 + 成本生存线

一句话先下结论:base alpha 很清楚,确实是 raw alpha;但 repo 当前版本的优势几乎全部来自过于乐观的成交假设。把 fill model 改 honest 以后,策略会从“看起来像大坑/神迹”同时塌回“接近零边、极易被手续费吃掉”。

2. 为什么这轮值得看它

当前研究池里,pairs / funding / cross-market 已经很密;但 volume-profile / value-area anchor 还比较少见。它的好处是:

所以这类题值得补进素材池,但前提是先把 alpha 本体执行幻觉 分开。

3. 来源与材料

3.1 仓库信息

3.2 这份 repo 里最关键的文件

3.3 数据公开性

4. 这条 base alpha 到底是什么

4.1 策略骨架

repo 的逻辑很直接:

  1. 用最近 50 根 bar 的 high-low 区间,把每根 bar 的 volume 均匀撒到价格桶里;
  2. 找出 volume 最大的价格桶,作为 rolling POC
  3. 当当前价格低于 POC - offset 时,做多,赌价格回到 POC;
  4. 当当前价格高于 POC + offset 时,做空,赌价格回到 POC;
  5. 风控用 ATR(21)
  1. 仓位:max($50, capital x 0.5%)

4.2 用 desk 语言翻成人话

这不是 breakout,也不是 order-book imbalance continuation。

它本质上是:

所以它的 base alpha 很清楚:

> rolling POC displacement fade

也就是:

> 对“偏离近期成交量重心”的价格做 fade。

这条线本身就是 raw alpha,不需要借别的 headline 才成立。

5. 我做的最小复核

5.1 先复现 repo 自己的回测口径

我先按 backtest_poc.py 的原始逻辑复现了一遍。关键点是:

复现结果:

这和 repo 注释里写的“Win rate 2-4%SL 96-97%”基本一致。

5.2 一个很关键的诊断:fill model 比 signal 本身还重要

我做了一个故意的 stress test:

结果会直接从“血崩”变成“看起来像神迹”:

这不是在说“POC breakout continuation 真有这么强”,而是在说:

> 同一份数据,只要你允许自己在过期的理想价成交,连信号方向都能被 fill 假设盖过去。

也就是说,这份 repo 当前最先需要验证的不是“信号精不精”,而是“成交是不是假的”。

5.3 换成更 honest 的入场:信号 bar 结束后,下一根 open 入场

我把入场改成更保守、更适合 desk 最小实验的规则:

#### A. 仍然做 POC fade,并加最简单 EMA200 同向 gate

#### B. 改成 POC displacement follow,并加 EMA200 gate

5.4 这些数字怎么读

关键不是“哪一边略微正”,而是:

举例:

所以更准确的判断是:

> POC displacement 不是完全没信息,但 repo 当前版本的“可交易性”远弱于它展示出来的样子。

6. 对 desk 的真正价值

6.1 这条 alpha 还能不能留在池子里

可以留,但不能以“现成完整策略”心态直接抄

更合适的定位是:

6.2 更值得保留的不是整套脚本,而是 3 个可复用组件

  1. distance_to_POC
  1. POC_drift
  1. value-area excursion state

6.3 我对这份材料的 desk 级判断

如果一定要给一句短判断:

> 这不是“马上上线的 standalone raw alpha”,但它很适合被拆成一个 under-covered 的价量锚点特征族。

比起继续把它写成“POC 反转 bot”,更值得做的是:

7. 下一步怎么测

7.1 最小实验 1:先把 fill model 做对

同一条信号,至少并排测 4 种成交口径:

  1. signal close -> next bar open
  2. touch-confirmed limit
  3. maker-if-touched else skip
  4. stale POC fill(只保留作对照,不作 production 结论)

如果 alpha 只在第 4 种活着,那就不是 alpha,是回测假设。

7.2 最小实验 2:从 15m 压到 5m / 3m

建议先测:

判定标准很简单:

7.3 最小实验 3:把“假的 order-book POC”换成“真的微观结构 POC”

repo 现在的 POC 其实不是 order book 算出来的,而是:

下一步应该拆开测:

如果只有 proxy POC 有效、真 POC 没效,那就说明它更像 price-path artifact,而不是稳定微观结构信号。

8. 这篇东西最后怎么归档

8.1 主题归类

8.2 是否进入当前优先复现队列

我的建议:

9. 来源链接

10. 最短版结论

这份 2026 volume-profile repo 的 base alpha 很清楚:就是 rolling POC displacement fade。但最小复核表明,当前脚本的表现高度依赖乐观 fill;把入场改成 next-open 后,fade/follow 都只剩 1.5~2.2 bps 量级的毛边,远没到可直接上线的厚度。

所以这轮最值得保留的,不是整份 bot,而是:

把它们当成后续 mean reversion / breakout / trend 共用特征,会比继续把这份 repo 当成独立 alpha 更划算。