|
| 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