Commit Graph

338 Commits

Author SHA1 Message Date
Brandon Collins
5ecfd6cd42 fix: address vecdb compatibility and add unit tests
- Switch to vecdb 0.6.0 for compatibility with brk_types u8/i8
- Add proper trait imports (VecIndex, AnyVec, IterableVec, etc.)
- Add unit tests for Reserve Risk formula validation:
  - test_hodl_bank_formula: Verifies cumulative calculation
  - test_reserve_risk_formula: Verifies division formula
  - test_reserve_risk_interpretation: Documents metric semantics
  - test_hodl_bank_negative_contribution: Tests edge case

All 16 tests pass (12 existing + 4 new).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 11:15:30 -05:00
Brandon Collins
f494486e12 feat(cointime): add Reserve Risk metric
Implements Reserve Risk as a new market indicator for Bitcoin.

## Formula
- Reserve Risk = Price / HODL Bank
- HODL Bank = cumulative Σ(Price - avg_VOCDD) over time
- VOCDD = CDD × Price (Value-weighted Coin Days Destroyed)

## Changes
- Added `vocdd` (Value-weighted CDD) to `cointime/value` module
- Created new `cointime/reserve_risk` module containing:
  - `vocdd_365d_sma`: 365-day moving average of VOCDD
  - `hodl_bank`: Cumulative opportunity cost of holding
  - `reserve_risk`: Final ratio metric for timing accumulation
- Wired into cointime compute pipeline (price-dependent)

## Use Case
Reserve Risk measures long-term holder confidence.
Low values indicate high confidence and potential buying opportunity.
High values suggest overheated market conditions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 10:53:20 -05:00
nym21
9613fce919 global: snapshot 2026-01-20 15:04:00 +01:00
nym21
371ff86287 global: snapshot 2026-01-19 16:52:17 +01:00
nym21
c90953adbe global: snapshot 2026-01-18 16:04:24 +01:00
nym21
7b3e172948 global: snapshot 2026-01-17 02:34:08 +01:00
nym21
6bb1a2a311 global: snapshot 2026-01-16 23:49:49 +01:00
nym21
3b00a92fa4 global: snapshot 2026-01-16 15:17:42 +01:00
nym21
f39681bb2b price: snapshot 2026-01-16 00:41:25 +01:00
nym21
967d2c7f35 global: snapshot 2026-01-15 23:34:43 +01:00
nym21
d75c2a881b global: snapshot 2026-01-14 16:38:53 +01:00
nym21
ddb1db7a8e clients: snapshot 2026-01-14 11:12:31 +01:00
nym21
3a836ab0f4 clients: snapshot 2026-01-14 00:39:28 +01:00
nym21
524ab3de05 clients: snapshot 2026-01-13 23:14:26 +01:00
nym21
e77993fb76 global: snapshot 2026-01-13 22:32:29 +01:00
nym21
0c442b4a71 computer: shorten percentiles path in tree 2026-01-13 01:49:13 +01:00
nym21
670aa95494 global: snapshot 2026-01-13 01:18:27 +01:00
nym21
ea70c381de global: snapshot 2026-01-11 17:19:00 +01:00
nym21
6f45ec13f3 global: snapshot 2026-01-10 18:43:18 +01:00
nym21
3bc0615000 computer: renames 2026-01-10 10:23:29 +01:00
nym21
69729842a4 computer: renames 2026-01-09 23:40:00 +01:00
nym21
5f4fc646f5 computer: renames 2026-01-09 23:27:09 +01:00
nym21
3a3f6b8593 computer: snapshot 2026-01-09 22:02:34 +01:00
nym21
426d7797a3 global: big snapshot 2026-01-09 20:00:20 +01:00
nym21
cb0abc324e global: MASSIVE snapshot 2026-01-07 01:16:37 +01:00
nym21
abffdec497 crates: snapshot 2026-01-04 13:20:30 +01:00
nym21
13ab7d39d7 global: snapshot 2026-01-04 11:51:22 +01:00
nym21
3cae817915 global: BIG snapshot 2026-01-04 01:47:03 +01:00
nym21
3e9b1cc2b2 global: MASSIVE snapshot 2026-01-02 19:08:20 +01:00
nym21
ac6175688d crates: snapshot 2025-12-31 00:02:50 +01:00
nym21
a6f8108165 crates: snapshot 2025-12-30 22:49:47 +01:00
nym21
8cff55a405 crates: snapshot 2025-12-30 18:09:08 +01:00
nym21
bd376f86ea crates: snapshot 2025-12-30 11:48:09 +01:00
nym21
d9f28e85af crates: snapshot 2025-12-30 11:27:39 +01:00
nym21
ed18fd55e1 crates: snapshot 2025-12-30 00:49:34 +01:00
nym21
e89a67b9a7 global: snapshot 2025-12-29 17:02:17 +01:00
nym21
445959f5b9 global: snapshot 2025-12-29 13:20:52 +01:00
nym21
647f177f31 binder: commit generated clients 2025-12-29 09:37:57 +01:00
nym21
31d2f8ef37 computer: snapshot 2025-12-29 00:14:54 +01:00
nym21
236b4097c5 computer: snapshot 2025-12-28 20:24:38 +01:00
nym21
f5790d5c8a computer: snapshot 2025-12-28 16:35:17 +01:00
nym21
f08ac7f916 computer: snapshot 2025-12-28 14:57:25 +01:00
nym21
e77d338357 computer: snapshot 2025-12-28 10:25:55 +01:00
nym21
5d6325ae30 computer: snapshot 2025-12-28 03:19:34 +01:00
nym21
9ba77dac0f global: snapshot 2025-12-27 20:34:13 +01:00
nym21
f9856cf0aa computer: fixes 2025-12-27 18:16:30 +01:00
nym21
de93f08e93 global: snapshot 2025-12-26 22:41:36 +01:00
nym21
bbb74b76c8 global: snapshot 2025-12-25 22:21:12 +01:00
nym21
457b0e24c5 global: snapshot 2025-12-21 23:12:18 +01:00
nym21
6e0ac138d8 global: improve par writes 2025-12-21 16:22:25 +01:00