Skip to content

Commit 75655d3

Browse files
JohnCCarterclaude
andcommitted
docs(research): design next BTC/USD source-fib research pass
Read-only design report comparing 5 candidate passes; recommends the corpus integrity report (#2) now and the MTF confluence atlas (#1) as the next analytical pass. Docs-only; indexed in reviews/README.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent c62ae8a commit 75655d3

2 files changed

Lines changed: 206 additions & 0 deletions

File tree

docs/research_wiki/reviews/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ on 2026-06-08. They are **not** current evidence.
2626
| [btc-4h-fib-20171228-correction-20260615.md](btc-4h-fib-20171228-correction-20260615.md) | 20171228 anchor_a correction (preview-first flow) — candidate_1 applied |
2727
| [chart-regression-strategy-20260615.md](chart-regression-strategy-20260615.md) | Chart regression strategy spike (#32 evaluate-later) — structural-first, defer pixel |
2828
| [btc-4h-fib-20250506-dedup-20260615.md](btc-4h-fib-20250506-dedup-20260615.md) | 20250506 dedup — fib A superseded, fib B retained (active 4H 366→365) |
29+
| [btc-source-fib-next-research-plan-20260615.md](btc-source-fib-next-research-plan-20260615.md) | Next research-pass design (read-only) — recommends corpus integrity report (#2) now, MTF confluence atlas (#1) next |
Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
# BTC/USD Source-Fib — Next Research Pass (Design, 2026-06-15)
2+
3+
Read-only research design. **Docs-only — no code, no source-label changes, no artifacts,
4+
no deps.** Question: with the BTC/USD source-fib corpus now in a clean state, what is the
5+
highest-ROI next research pass?
6+
7+
Scope guards honored: no 1H, no reaction-review expansion, no auto-fib, no trading
8+
conclusions, no ML/Optuna/tuning, no new tooling, no committed artifacts. Fib stays a
9+
research workshop, not a Genesis-heavy pipeline.
10+
11+
---
12+
13+
## Observed
14+
15+
- Corpus on disk (base `fib_*.json`, `*_events.json`/`*_interactions.csv` sidecars
16+
excluded — verified by `ls | grep -v`): **1M=9, 1w=21, 1d=67, 4h=365**. Matches
17+
[INDEX.md](../../../data/labels/INDEX.md) and [handoff.md](../handoff.md).
18+
- All ladders: log scale, profile `tradingview_log_chamoun`, levels
19+
`[0, 0.382, 0.5, 0.618, 0.786, 1]` (no 0.236), endpoint mapping 0.0=anchor_b /
20+
1.0=anchor_a, human/manual origin. Coverage 2017-01-05 → 2026-06-05.
21+
- 4H corpus is **post-triage clean**: Tier 1 map (11 annual groups, 366 drawn) + Tier 2
22+
zoom sample-pass done; `20171228` anchor_a corrected; `20250506` near-duplicate
23+
superseded (366→365). Verdicts tracked in the
24+
[source-quality ledger](ledgers/btc-4h-source-quality-ledger.csv).
25+
- Reusable research modules already exist (no new tooling needed for the leading options):
26+
- `research/overlap_detector.py` — boxes fibs in (time, log-price), box-IoU +
27+
shared-anchor near-duplicate/overlap detection. **Currently 4H-only** (`require_timeframe="4h"`).
28+
- `research/monthly_fib_map.py``_draw_map`/`_load_fibs`/`_nearest_pos`/`_short_id`
29+
primitives (log y-axis); the base for every combined-map flow.
30+
- `research/weekly_source_fib_map.py` — combined 1W/1D/4H map (1W/1D usable, combined 4H
31+
too compressed); `research/weekly_source_fib_zoom.py` — per-fib 4H zoom.
32+
- `research/fourh_source_fib_map.py` / `fourh_source_fib_zoom.py` — 4H annual map + per-fib zoom.
33+
- `research/mtf_fib_level_projection.py` — existing MTF level-projection math.
34+
- `research/render_summary.py` — stdlib structural summaries + golden JSON (verification
35+
layer for any new render).
36+
- `research/artifact_gallery.py`, `research/review_ledger.py`, `research/ledger_query.py`
37+
— gallery / verdict ledger / queries.
38+
- 1H is paused (cache not fetched). ETH/USD is blocked until BTC protocol sign-off.
39+
40+
## Inferred
41+
42+
- The corpus was *just* declared clean; the natural capstone is a **read-only integrity
43+
report that closes the dataset as a research base** — near-zero scope-creep risk, ~no
44+
code, and it produces the "known caveats" foundation any later analytical pass should
45+
build on.
46+
- The richest *insight* pass is a **MTF confluence atlas** (where 1M/1W/1D/4H source-fib
47+
level families cluster in price/time). It reuses `overlap_detector` + `monthly_fib_map`
48+
primitives, but cross-TF log-price alignment + a proximity threshold + time-window
49+
overlap is genuinely more complex than it reads → highest scope-creep risk of the five.
50+
- Options #3 (4H-only behavior) and #4 (ETH source-facit) are **user-deferred by the
51+
user's own framing** ("måste hållas som observation"; "kanske senare") — treat as lower
52+
priority, not equal contenders. #5 (combined source-map review) is largely the **visual
53+
companion** to #1, not an independent track.
54+
55+
## Unverified
56+
57+
- Whether a useful cross-TF confluence threshold exists at all (price proximity in log
58+
space + time overlap) before measuring it — the atlas could surface few or noisy
59+
clusters; that is itself a finding, not a failure.
60+
- Exact extension cost to make `overlap_detector` multi-timeframe (it is 4H-fail-closed
61+
today) — assumed small but not measured.
62+
- Whether the combined 4H layer renders legibly at MTF scale (weekly map already showed
63+
combined 4H "too compressed") — likely needs per-window slicing, not a single chart.
64+
65+
---
66+
67+
## Alternatives compared
68+
69+
Each alternative answers: **solves / data / reusable / scope-creep risk / smallest safe
70+
slice / useful outputs / verification needs / do-not.**
71+
72+
### #1 — MTF confluence atlas
73+
74+
- **Solves:** where 1M/1W/1D/4H source-fib level families cluster in price/time — shows the
75+
corpus's structural "hot zones" as a map.
76+
- **Data:** all four TFs' `fib_*.json` levels (log prices) + anchor time spans.
77+
- **Reusable:** `overlap_detector.py` (extend beyond 4H), `monthly_fib_map.py` primitives,
78+
`mtf_fib_level_projection.py`, `render_summary.py` (verify any render).
79+
- **Scope-creep risk:** **highest.** Cross-TF log-price proximity threshold, time-window
80+
overlap, multi-TF rendering, and the temptation to interpret clusters as
81+
signals/levels-that-work (forbidden).
82+
- **Smallest safe slice:** a **read-only confluence table** (no chart) — for a fixed price
83+
band, list which TFs have a level within ε (log) over a shared time window. Counts only.
84+
- **Useful outputs:** confluence table CSV (gitignored or docs), later a windowed atlas chart.
85+
- **Verification:** every cited level traces to a real `fib_*.json`; `render_summary`
86+
golden test if a chart is added; threshold ε stated and held constant.
87+
- **Do-not:** call a cluster a tradeable level; auto-generate fibs; tune ε to taste.
88+
89+
### #2 — Source-fib corpus integrity report ⟵ leading slice
90+
91+
- **Solves:** closes the dataset as a stable research base — counts, coverage, up/down,
92+
corrections, superseded, known caveats, conventions in one authoritative read-only doc.
93+
- **Data:** the four `fib_*.json` dirs + ledger + correction/dedup reports + INDEX/handoff.
94+
- **Reusable:** `review_ledger.py`/`ledger_query.py` (read verdicts), `ledger_query` for
95+
rollups; no rendering. Likely **zero new code** (pure aggregation/prose).
96+
- **Scope-creep risk:** **lowest.** Read-only aggregation of facts already established.
97+
- **Smallest safe slice:** the report itself — per-TF counts (sidecar-excluded), coverage
98+
span, up/down split, the two known caveats (body/close-vs-wick convention; 20171228
99+
correction + 20250506 supersede), cross-links to ledger/reports.
100+
- **Useful outputs:** one canonical integrity doc; an INDEX/handoff cross-link.
101+
- **Verification:** counts via `ls fib_*.json | grep -v _events|_interactions`; ledger via
102+
`review_ledger --validate`; every claim cites a committed file.
103+
- **Do-not:** introduce new analysis or verdicts; re-open closed phases; touch labels.
104+
105+
### #3 — 4H-only behavior study (no 1H)
106+
107+
- **Solves:** how 4H candles behave around active 4H source levels — descriptive only.
108+
- **Data:** 4H `fib_*.json` levels + 4H candle cache.
109+
- **Reusable:** `level_events.py`, `human_review_level_events.py`, `source_fib_projection_*`.
110+
- **Scope-creep risk:** **high — user-flagged.** Easily becomes reaction-review expansion or
111+
an implied edge claim.
112+
- **Smallest safe slice:** observation of one well-understood fib's level touches, counts
113+
only, explicitly labeled "observation, not reaction-review."
114+
- **Useful outputs:** a touch-count observation note.
115+
- **Verification:** counts reproduce from cache; no outcome/PnL framing.
116+
- **Do-not:** expand to all 365 fibs; compute win-rates; conclude tradability.
117+
118+
### #4 — ETH/USD next source-facit
119+
120+
- **Solves:** begins generalizing the protocol to a second market.
121+
- **Data:** ETH/USD candle cache (must be fetched) + new manual labels (none yet).
122+
- **Reusable:** entire labeling/preflight/fetch stack; protocol doc.
123+
- **Scope-creep risk:** moderate, but **gated** — blocked until BTC protocol sign-off;
124+
high manual cost.
125+
- **Smallest safe slice:** none yet — it is a new labeling effort, not a research pass on
126+
the existing corpus. Out of scope for "use the clean BTC corpus."
127+
- **Useful outputs:** (future) ETH 1M source fibs.
128+
- **Verification:** preflight + schema, as with BTC.
129+
- **Do-not:** start before explicit sign-off; mix ETH into BTC facit/index.
130+
131+
### #5 — MTF combined source-map review
132+
133+
- **Solves:** visual check that active 1M/1W/1D/4H source levels read as a usable map on
134+
shared windows — "is the corpus navigable?"
135+
- **Data:** all four TFs' levels on common chart windows.
136+
- **Reusable:** `weekly_source_fib_map.py` (already combines 1W/1D/4H), `monthly_fib_map`
137+
primitives, `render_summary` (verify).
138+
- **Scope-creep risk:** moderate — combined 4H legibility (weekly map already showed it too
139+
compressed) tempts per-window proliferation.
140+
- **Smallest safe slice:** one shared window (e.g. one cycle leg) rendered with 1M+1W+1D
141+
only (defer 4H legibility); visual-only.
142+
- **Useful outputs:** a small set of windowed combined maps (gitignored).
143+
- **Verification:** `render_summary` golden snapshot; every level traces to a real fib.
144+
- **Do-not:** treat the map as a signal source; force all 365 4H fibs onto one chart.
145+
146+
### Summary matrix
147+
148+
| # | Pass | Insight | Code | Scope-creep | Safe-slice cost | Status |
149+
|---|------|--------|------|-------------|-----------------|--------|
150+
| **#2** | Corpus integrity report | medium | **~none** | **lowest** | **smallest** | **Recommend now** |
151+
| #1 | MTF confluence atlas | **highest** | medium | highest | small (table-only) | **Next analytical pass** |
152+
| #5 | Combined source-map review | medium | low–med | moderate | small | Visual companion to #1 |
153+
| #3 | 4H-only behavior study | medium | medium | high (user-flagged) | small | Defer (observation-only) |
154+
| #4 | ETH/USD source-facit | high (long-term) | high (manual) | gated | n/a (new labeling) | Defer (blocked) |
155+
156+
---
157+
158+
## Recommendation
159+
160+
**Do #2 (corpus integrity report) next**, then **#1 (MTF confluence atlas) as the
161+
designated follow-on analytical pass**, with #1's first slice a *read-only confluence
162+
table* (no chart). Rationale: #2 is the highest-certainty, lowest-risk step and the natural
163+
capstone for a corpus just declared clean; it produces the "known caveats" base that #1
164+
should build on. #5 is folded in as #1's visual companion. #3 and #4 stay deferred per the
165+
user's own framing.
166+
167+
### Smallest implementation slice (for #2)
168+
169+
A single docs-only report — e.g.
170+
`docs/research_wiki/reviews/btc-source-fib-corpus-integrity-20260615.md` — containing:
171+
per-TF base counts (sidecar-excluded) + up/down split, coverage span, ladder conventions,
172+
the two known caveats (body/close-vs-wick; 20171228 correction + 20250506 supersede),
173+
ledger summary (via `ledger_query`), and cross-links. **No code unless a one-shot read-only
174+
rollup is trivially small and stdlib.** No artifacts, no labels.
175+
176+
---
177+
178+
## Non-goals (explicit)
179+
180+
- No 1H. No reaction-review expansion. No auto-fib. No trading conclusions / edge claims.
181+
- No ML / Optuna / tuning. No new tooling for #2. No committed artifacts/PNGs/blobs.
182+
- No source-label changes. No ETH/USD work before BTC sign-off. No re-opening closed phases.
183+
184+
## Acceptance criteria (for this design doc)
185+
186+
- Docs-only; no code, no artifacts, no source-labels, no deps. ✔ (this file only)
187+
- All five alternatives compared on all eight sub-questions. ✔
188+
- One clear singular recommendation + smallest safe slice + explicit non-goals. ✔
189+
- Counts verified sidecar-excluded; every claim cites a committed file. ✔
190+
- Indexed in [reviews/README.md](README.md). (added with this doc)
191+
192+
## Recommended next Claude prompt
193+
194+
> Kör nästa pass: **BTC/USD source-fib corpus integrity report** (Alternativ #2 från
195+
> next-research-plan-20260615). Read-only/docs-first. Skapa
196+
> `docs/research_wiki/reviews/btc-source-fib-corpus-integrity-20260615.md`:
197+
> per-TF base counts (sidecar-exkluderade: `ls fib_*.json | grep -v _events|_interactions`),
198+
> coverage-span, up/down, ladder-konventioner, de två kända caveats (body/close-vs-wick;
199+
> 20171228 correction + 20250506 supersede), ledger-sammanfattning (`ledger_query`),
200+
> cross-links till ledger/INDEX/handoff. **Inga source-label ändringar, ingen 1H, ingen
201+
> reaction-review, ingen auto-fib, inga trading-slutsatser, inga deps, inga committade
202+
> artifacts.** Kod endast om en engångs read-only rollup är trivialt liten och stdlib.
203+
> Uppdatera reviews/README.md + ev. handoff "Next Useful Action" (respektera 300-rad-bound).
204+
> Docs-only commit om rapporten är bra. Därefter: stanna och erbjud #1 (MTF confluence
205+
> atlas, table-first) som nästa analytiska pass.

0 commit comments

Comments
 (0)