You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Define the next labeling/review-tool design step for the BTC-first Fibonacci research workflow.
We have agreed that the active first research track should not immediately introduce nested lower-timeframe fibs. First, the tool must support a clean top-down projection workflow:
Human 1M source fib
→ project same fib levels down to 1W / 1D / 4H
→ review how lower-timeframe candles interact with the higher-timeframe levels
Nested fibs inside the 1M/1W range are a later research track after this first projection workflow is verified.
Core decision
Separate the workflow into three concepts:
Source fib
Human-drawn fib on a higher timeframe, initially BTC/USD 1M.
This is the source of truth.
Projected review
The source fib’s price levels are projected onto lower chart timeframes.
Example: 1M levels shown on 1W, 1D, and 4H candles.
Machine logic only labels candle interaction with those projected levels, and treats every configured level equally (no prioritized levels).
Nested fibs
Local lower-timeframe fibs inside the higher-timeframe range.
This is intentionally deferred until source-fib projection is stable and reviewed.
Active phase: source-fib projection only
For the active phase, the tool should support:
BTC/USD 1M source fib
→ projected to 1W
→ projected to 1D
→ projected to 4H
The user should draw the fib once on 1M. When switching to 1W, 1D, or 4H, the tool should not require a new fib. It should read the saved 1M fib and render/project the same price levels onto the lower timeframe chart.
Prerequisites
BTC/USD 1M source facit already exists — 9 log-scale monthly fibs under data/labels/human_fib/bitfinex/BTC-USD/1M/. The projection workflow consumes those as the locked source; no new 1M fib needs to be drawn for this issue.
Lower-timeframe candle caches are present — 1W, 1D, and 4H raw caches exist under data/raw/bitfinex/BTC-USD/ (including a deep 4h/limit_20000.csv), so 1M → 1W/1D/4H projection can run offline. Re-drawing 1W/1D/4H human facit is a separate protocol track and is not required for projection review.
Levels model (no machine bias)
All configured fib levels are equally event-capable. The machine must not treat any level (including 0.5 or 0.618) as inherently more important.
event_levels = all configured levels. Every level can generate events.
boundary_levels = [0, 1] — the range edges (anchor_b / anchor_a). These are boundary levels, not internal retracement levels, but they remain event-capable.
retracement_levels = [0.382, 0.5, 0.618, 0.786] — the internal levels.
human_highlights = presentation/review only. Optional visual annotations (e.g. a zone from 0.5 to 0.618) created in the labeling tool and displayed in the review tool. They may drive filtering, toggling, and visual focus, but must never affect event detection, outcome logic, sampling, or level importance.
There is no primary_active_levels, no "golden zone" machine logic, and no prioritized levels in the data.
Protocol-cleanup note. The active protocol previously defined primary_active_levels: [0.5, 0.618] as a golden-zone review-sampling focus (in config/*.yaml, core/config.py, research/human_review_pack.py, and the protocol docs). Per Addendum 2 this is retired in favor of human_highlights. Removing primary_active_levels from configs, schema, review sampling, and docs — and regenerating the 1M review pack without sampling bias — is part of this issue's protocol cleanup.
Required metadata
Human fib / projected event records must preserve enough context to avoid ambiguity:
source_fib_id, source_tf, projected_from, and chart_tf above may be used as review-facing aliases if they make the review tool clearer, but do not introduce a second persistent vocabulary without an explicit schema decision. (source_tf and projected_from are the same value.)
Active BTC-first profile (matches the repo's tradingview_log_chamoun profile):
levels_profile = tradingview_log_chamoun
scale_mode = log
levels = [0, 0.382, 0.5, 0.618, 0.786, 1]
boundary_levels = [0, 1]
retracement_levels = [0.382, 0.5, 0.618, 0.786]
event_levels = all levels (no prioritization)
human_highlights = presentation/review only
no 0.236
Legacy fibs that use 0.236 and/or linear scale belong to a separate profile and must not be mixed into tradingview_log_chamoun.
If the human added highlights, the review tool may visually mark them (e.g. a 0.5–0.618 zone) for review focus only. Highlights change presentation, never detection — and the machine still emits events on every level equally.
Events should be named with full context, for example:
1M 0.5 touched by 4H candle
1M 0.618 crossed by 1D candle
1M 0.382 touched by 4H candle
1M 1 touched by 1D candle
Avoid ambiguous labels such as only:
0.5 touch
Every event must make clear:
which fib the level comes from
which timeframe the fib was drawn on
which chart timeframe is being reviewed
which candle timeframe produced the interaction
Any "zone"-level summary in the review (e.g. "candles inside the 0.5–0.618 highlighted zone") is a presentation grouping derived from human_highlights only — it is not a separate machine event type and carries no priority.
Explicitly deferred: nested fibs
Do not implement nested lower-timeframe fibs as part of this issue.
Nested fibs should later use explicit parent metadata, for example:
All configured levels (0, 0.382, 0.5, 0.618, 0.786, 1) are event-capable; the machine applies no priority or bias between them.
0 and 1 are recorded as boundary levels (range edges), not internal retracement levels, while remaining event-capable.
human_highlights affect presentation/review only (filtering, toggling, visual focus) and never event detection, outcome logic, sampling, or level importance.
primary_active_levels is removed from configs, schema, review sampling, and docs (Addendum 2 cleanup); the 1M review pack is regenerated without golden-zone sampling bias.
Active profile is tradingview_log_chamoun (scale_mode = log, no 0.236); legacy 0.236 / linear fibs are kept under a separate profile and not mixed in.
Purpose
Define the next labeling/review-tool design step for the BTC-first Fibonacci research workflow.
We have agreed that the active first research track should not immediately introduce nested lower-timeframe fibs. First, the tool must support a clean top-down projection workflow:
Nested fibs inside the 1M/1W range are a later research track after this first projection workflow is verified.
Core decision
Separate the workflow into three concepts:
Source fib
Projected review
Nested fibs
Active phase: source-fib projection only
For the active phase, the tool should support:
The user should draw the fib once on 1M. When switching to 1W, 1D, or 4H, the tool should not require a new fib. It should read the saved 1M fib and render/project the same price levels onto the lower timeframe chart.
Prerequisites
data/labels/human_fib/bitfinex/BTC-USD/1M/. The projection workflow consumes those as the locked source; no new 1M fib needs to be drawn for this issue.1W,1D, and4Hraw caches exist underdata/raw/bitfinex/BTC-USD/(including a deep4h/limit_20000.csv), so1M → 1W/1D/4Hprojection can run offline. Re-drawing 1W/1D/4H human facit is a separate protocol track and is not required for projection review.Levels model (no machine bias)
All configured fib levels are equally event-capable. The machine must not treat any level (including 0.5 or 0.618) as inherently more important.
event_levels= all configured levels. Every level can generate events.boundary_levels=[0, 1]— the range edges (anchor_b / anchor_a). These are boundary levels, not internal retracement levels, but they remain event-capable.retracement_levels=[0.382, 0.5, 0.618, 0.786]— the internal levels.human_highlights= presentation/review only. Optional visual annotations (e.g. a zone from 0.5 to 0.618) created in the labeling tool and displayed in the review tool. They may drive filtering, toggling, and visual focus, but must never affect event detection, outcome logic, sampling, or level importance.There is no
primary_active_levels, no "golden zone" machine logic, and no prioritized levels in the data.Required metadata
Human fib / projected event records must preserve enough context to avoid ambiguity:
{ "source_fib_id": "fib_BTC-USD_1M_...", "source_tf": "1M", "chart_tf": "4h", "projected_from": "1M", "scale_mode": "log", "levels_profile": "tradingview_log_chamoun", "levels": [0, 0.382, 0.5, 0.618, 0.786, 1], "event_levels": [0, 0.382, 0.5, 0.618, 0.786, 1], "boundary_levels": [0, 1], "retracement_levels": [0.382, 0.5, 0.618, 0.786], "human_highlights": [] }human_highlightsis optional and presentation-only. Example of a populated highlight (does not change detection):Schema naming note. Prefer the existing persisted schema fields where possible:
source_fib_id,source_tf,projected_from, andchart_tfabove may be used as review-facing aliases if they make the review tool clearer, but do not introduce a second persistent vocabulary without an explicit schema decision. (source_tfandprojected_fromare the same value.)Active BTC-first profile (matches the repo's
tradingview_log_chamounprofile):Legacy fibs that use 0.236 and/or linear scale belong to a separate profile and must not be mixed into
tradingview_log_chamoun.Review tool behavior
The review view should clearly show:
If the human added highlights, the review tool may visually mark them (e.g. a 0.5–0.618 zone) for review focus only. Highlights change presentation, never detection — and the machine still emits events on every level equally.
Events should be named with full context, for example:
Avoid ambiguous labels such as only:
Every event must make clear:
Any "zone"-level summary in the review (e.g. "candles inside the 0.5–0.618 highlighted zone") is a presentation grouping derived from
human_highlightsonly — it is not a separate machine event type and carries no priority.Explicitly deferred: nested fibs
Do not implement nested lower-timeframe fibs as part of this issue.
Nested fibs should later use explicit parent metadata, for example:
{ "fib_id": "fib_BTC-USD_1W_...", "source_tf": "1W", "parent_fib_id": "fib_BTC-USD_1M_...", "parent_source_tf": "1M", "nested_inside": "1M_range" }But this belongs to a later phase only after 1M projection is verified.
Acceptance criteria
source_tf,chart_tf, andprojected_from.human_highlightsaffect presentation/review only (filtering, toggling, visual focus) and never event detection, outcome logic, sampling, or level importance.primary_active_levelsis removed from configs, schema, review sampling, and docs (Addendum 2 cleanup); the 1M review pack is regenerated without golden-zone sampling bias.tradingview_log_chamoun(scale_mode = log, no 0.236); legacy 0.236 / linear fibs are kept under a separate profile and not mixed in.Research guardrail
This issue exists to keep the first track clean:
Do not mix in the later track:
until the first track has been visually reviewed and approved.