Tidemark
作品集 · 產品經理 · 0→1 數據產品

讀懂比特幣的潮汐

從問題定義、假設驗證到上線營運,獨立完成一個每天自動更新的數據產品:把 17 項公開指標與減半週期,濃縮成「頂部訊號」與「底部訊號」兩個可行動的數字,並附上經逐輪回測的週期策略。

角色產品經理(獨立專案)
期間2026 年 10 月・8 次迭代
狀態已上線・每日自動更新
實作AI 協作(Claude Code)
Tidemark 宣傳主視覺:筆電顯示底部訊號總覽,兩支手機分別顯示週期策略與未來情境
Overview

專案概述

8次迭代・0 → 1 上線
17項計分指標・15 年數據
48個候選指標評估
700+次回測驗證
0付費資料源・後端伺服器

我負責的範圍:實作以 AI 協作工具完成,我扮演需求方、決策者與驗收者。

問題定義目標與成功標準範疇與優先順序研究與驗證設計 關鍵決策與取捨資訊架構體驗方向上線監控與迭代
Product brief

產品定義:一頁說清楚

問題

經典鏈上指標每輪頂部讀數都在下降(MVRV 4.7 → 4.4 → 2.9 → 2.3),固定門檻越來越晚觸發;中段高點又比真頂部更熱,只看「熱不熱」會在錯的時間發出警報。

目標使用者

長期持有比特幣、想知道週期走到哪裡的人;以及每天需要讀取數據寫日報的自動化流程(JSON 介面)。

核心假設

頂部 = 數據夠極端 × 時間進入歷史窗口。兩者同時成立才發訊號,可以排除中段高點的誤報。

成功標準
  • 最近三次頂部都是該輪訊號最高點
  • 假底部零誤報
  • 每日自動更新,零人工維護
不做什麼(Non-goals)

不接交易功能・不存任何個人持倉・第一版不用付費數據・不提供價格預測或機率

我把問題重新定義為「熱度與時間是否同時到位」,而不是「熱不熱」,並先寫下成功標準與不做的事,作為之後每個決策的依據。

Decision log

關鍵決策與取捨

決策點考慮過的選項選擇理由與代價
訊號結構只看熱度/熱度 × 時機熱度 × 時機只看熱度時中段高點比真頂部熱;代價是依賴四年週期延續,已列為已知限制
持有者行為數據付費 CryptoQuant/免費 4 年數據/不納入不納入只有 4 年歷史無法跨週期驗證,試算讓頂部訊號變差,且授權禁止公開
中期功能形式精準買賣訊號/狀態參考面板參考面板48 個指標研究顯示中期轉折沒有可靠指標,不做會誤導的訊號
策略績效呈現只放回測/加上定案後追蹤定案日+實際追蹤規則是看過歷史才挑的;設定定案日,讓產品接受未來數據檢驗
未來情境單一預測線/三情境+機率/三情境無機率三情境、不給機率樣本只有 3–4 次週期,機率會製造虛假的精確感
每日排程GitHub 排程/外部定時觸發外部觸發+備援實測 GitHub 排程延遲約 5 小時,日報會讀到舊數據
資訊架構中期放第 2 頁/獨立按鈕獨立按鈕01–04 都是頂底相關頁,中期不屬於頂底,混在中間會造成誤解

我選擇少一個功能,而不是多一個不可靠的功能;依證據強度調整功能承諾,也是產品決策的一部分。

Research

假設驗證:先驗證,通過才上線

我為產品訂了一條規則:任何新指標都要先用歷史頂部、底部與「假訊號」(中段高點、中段回調)檢驗,通過才上線。一共評估 48 個候選指標、約 10 種策略設計、700 多次回測。

後期把流程改成事先固定候選與參數再測試,避免看過結果才挑規則。大多數結論是「沒用」,這些負面結果和成功的一樣公開在產品說明裡。

測試內容結果決定
48 個免費指標的中期轉折辨識(2014–19 觀察、2020–26 檢驗)沒有指標能把最終頂部排在中段高點之上保留現有結構
Power Law 冪律趨勢價倍數三次底部 0.24–0.48 倍、假底部無誤報;頂部倍數逐輪急降加入底部
Pi Cycle Top最近兩次頂部讀數與 2019 假頂相同不採用
交易所淨流入2021、2025 頂部為 0,資金改走 ETF 與託管移除
長期持有者 SOPR、CDD(免費 4 年數據)2024-03 假頂 100 分、2025 真頂 48 分,讓頂部訊號變差不採用
Delta Price真假底部分得開,但與 MVRV 相關 0.67,加入後分辨力略降只作參考
牛市內避開回調(7 種趨勢濾網)三次牛市全部輸給持有不採用
回調加碼短線(4 種出場方式)2020 年後全部輸給任意日進場不採用
Signal model

訊號模型:數據 × 時鐘

Top signal
頂部訊號 = 熱度 × 時機
  • 熱度:鏈上估值 44%、資金流 25%、槓桿 19%、情緒 12%
  • 時機:距減半天數、距本輪低點天數,對照過去三次頂部
  • ≥ 50 頂部窗口、≥ 70 高度警戒
Bottom signal
底部訊號 = 冷度 × 底部時機
  • 冷度:估值 50%、礦工 30%、價格結構 20%
  • 底部時機:距上次頂部、距上次減半,對照過去三次底部
  • ≥ 50 底部區、≥ 70 強烈底部
類別指標計分方式
鏈上估值MVRV Z-score、NUPL、Puell Multiple、實現價格倍數週期法:以過去四次頂部擬合遞減趨勢,推估本輪預期頂部
資金流與機構ETF 30 日淨流入、ETF 流入動能、穩定幣 90 日增速、Coinbase 溢價4 年滾動百分位(歷史不足三輪)
槓桿與衍生品資金費率 7 日均、未平倉量/市值、期現基差4 年滾動百分位
情緒恐懼貪婪指數 7 日均4 年滾動百分位
冷度(底部)MVRV、NUPL、Puell、Hash Ribbons、AHR999、Power Law以過去三次底部擬合本輪預期底部;Hash Ribbons 依投降深度

同一類指標先平均再按權重加總,避免高度相關的指標重複計分;百分位 35 以下記 0 分,避免平常狀態被算成「半熱」。

flowchart LR
  subgraph D[公開數據]
    CM[Coin Metrics 鏈上]
    ETF[TFTC ETF 資金流]
    DL[DefiLlama 穩定幣]
    EX[OKX・Binance・Coinbase 衍生品]
    FG[恐懼貪婪]
    BS[Bitstamp 日 K]
  end
  D --> IND[17 項指標]
  IND --> H[熱度 0–100]
  IND --> C[冷度 0–100]
  CLK[減半與週期時鐘] --> T[時機]
  CLK --> BT[底部時機]
  H --> TS{{頂部訊號}}
  T --> TS
  C --> BSG{{底部訊號}}
  BT --> BSG
  TS --> ST[週期策略]
  BSG --> ST
  BS --> SUP[週線 Supertrend] --> ST
Iterations

迭代:每一版都回應一個具體問題

V1・MVP熱度分數上線

4 類指標加權,每日自動更新與 JSON 介面

發現:分數每年都會「鈍化」

V2・模型熱度 × 時機

加入減半與低點兩個時鐘

結果:三輪最終頂部都成為該輪最高

V3・範疇擴充底部訊號

冷度 × 底部時機,週期結構驗證

回應:驗證 ETF 時代熊市是否變淺

V4・體驗品牌與改版

品牌、雙語、四套視覺提案收斂成「極光潮汐」

回應:資訊太密、不好讀

V5・研究中期狀態

48 指標研究後做成參考面板

決策:證據弱,不做成訊號

V6・價值週期策略與情境

逐輪回測、模擬資金曲線、三種未來情境

回應:從「看懂」走到「怎麼做」

V7・營運可靠性與監控

自動檢查、事件通知、流量統計、定案後追蹤

回應:無人值守也不出錯

V8・優化互動細節

潮汐筆記、手機長按、分享卡、時機說明

回應:使用回饋與走查

Strategy

週期策略:警戒 + 趨勢確認

警戒

持有中,頂部訊號或頂部時機 ≥ 50,進入警戒並保持到賣出。

賣出

警戒中,週線 Supertrend(ATR 10 × 3)由多轉空,全部賣出。

買回

空手時,底部訊號 ≥ 50 或週線 Supertrend 轉多,全部買回。

起點策略持有策略 ÷ 持有策略最大回撤持有最大回撤
2014857×114×7.5×−74%−84%
201820.8×6.4×3.3×−71%−81%
20225.5×1.8×3.1×−35%−67%

讓產品接受未來的檢驗

  1. 逐輪回測:每一輪只用當時已知的資料設定參數,不偷看未來。
  2. 敏感度測試:門檻在 40–60 之間的 27 種組合全部勝過持有,證明不是剛好挑中的參數。
  3. 設定定案日(2026-10-06):規則從此凍結,之後的績效分開顯示;保守、中間、樂觀三種未來情境也同時凍結,用真實數據逐日比對。
Interface

介面

總覽頁首屏:底部訊號 22 的液態大數字、潮汐筆記、冷度刻度尺
總覽・資訊架構依「使用者要回答的問題」分層:01–04 是頂底相關頁面,中期狀態與週期策略用獨立按鈕區隔。預設首頁顯示底部訊號,因為當下最重要的問題是本輪底部是否成立。
週期策略頁:持有中、倉位 100%、最近一次操作
週期策略・倉位、是否警戒、最近一次操作與下一步條件。
未來情境圖:保守、中間、樂觀三條路徑
未來情境・三條歷史規律外推的路徑,明確標示不是預測。
時機頁:兩個時鐘的時間軸與窗口
時機・兩個時鐘標出過去頂底、滿分窗口與今天的位置,點選可看說明。
中期狀態頁:趨勢環境、牛市回調觀察、短線過熱
中期狀態・趨勢環境與條件清單,附歷史統計,標示證據較弱。
熱度頁:各類別與指標卡片
熱度・寬螢幕全寬排版,每張指標卡可點開看完整歷史。
淺色模式的週期策略頁
淺色模式・預設深色,可切換淺色或跟隨系統。
手機版總覽
手機・總覽・往下捲時頁首收起、圖表長按才顯示數值
手機版週期策略
手機・週期策略
手機版未來情境
手機・未來情境
Design

設計:從四個方向收斂成「極光潮汐」

先做四套可互動的視覺提案,讓使用者實際操作後選擇偏好,再組合成最終方向:潮汐的動態波浪與刻度尺、極光的色調與氛圍、瑞士風的巨大數字與資訊秩序。四種模式各有專屬色彩,一眼就知道自己在看哪一類資訊。

方向 A 潮汐
A 潮汐・波浪與刻度尺
方向 B 瑞士
B 瑞士・巨大數字、網格秩序
方向 C 極光
C 極光・色調與氛圍
方向 D 極光潮汐
D 極光潮汐・最終採用的組合

液態大數字

訊號分數用空心巨大數字呈現,裡面的「潮水」依分數漲到對應高度並持續晃動。

頂底不同的動態

頂部模式是湍急的漲潮浪;底部模式是低緩的深海湧浪,加上從海底往上浮的氣泡。

潮汐筆記

依當天數據自動挑選句型,用一句話說明今天的狀態,只描述數據,不做預測。

底部模式綠 → 藍・預設首頁
頂部模式紅 → 紫
中期狀態中性藍紫,不屬頂底
週期策略金 → 橘
Architecture

營運與架構:無人值守也不出錯

flowchart TB
  CRON[cron-job.org
每天 UTC 00:15] --> GA[GitHub Actions] SCHED[GitHub 排程
備援,已更新就略過] -.-> GA GA --> RUN[run.py] RUN --> SRC[sources.py
抓取 8 個公開資料源
失敗時沿用舊資料並標記 stale] SRC --> SCO[scoring.py 熱度・冷度・時機] SCO --> STR[strategy.py 逐輪回測] SCO --> SCN[scenarios.py 三種情境] SCO --> MID[midterm.py 中期狀態] STR & SCN & MID --> OUT[latest.json・中英文頁面・og.png・CSV] OUT --> CHK{checks.py 自動檢查} CHK -- 通過 --> GIT[commit] --> PAGES[GitHub Pages 網站] CHK -- 失敗 --> STOP[停止更新・保留昨天的網站] OUT --> EV[events.py 偵測重要事件] --> LINE[LINE 通知] PAGES --> GC[GoatCounter 匿名流量統計]

技術選擇

Python(pandas、numpy、requests、Pillow)產生靜態 HTML;資料內嵌在頁面裡,沒有後端伺服器。

可靠性是需求的一部分

任一資料源失敗只標記舊資料、不中斷;自動檢查不通過就停止發布;發現平台排程延遲約 5 小時,改用外部準時觸發並保留備援。

雙語

文字寫成「中文|English」成對標記,同一份程式輸出兩個語言版本,自動檢查英文頁沒有殘留中文。

Metrics & risks

成功指標與風險管理

成功指標怎麼追蹤
數據準時每天 UTC 00:15 更新,落後就標記舊資料
輸出正確自動檢查不通過就停止發布
策略可信度定案後績效與凍結情境逐日比對
使用情況各分頁匿名造訪數(GoatCounter)
風險對策
資料源中斷或被擋主要+備援來源、沿用舊值並標記
過度擬合逐輪回測、事先固定參數、定案日
數據授權只用可公開的來源,不合授權者不上線
被當成投資建議標示情境非預測、全站免責聲明
每日自動產生的分享預覽圖
每日分享卡・分享連結時就是一張即時的狀態摘要。
Scope & roadmap

範疇與路線圖

已上線

  • 頂部/底部訊號
  • 週期策略與情境
  • 中期狀態
  • 自動檢查與分享

下一步

  • 接上 LINE 通知
  • 2026-12-19 底部判定
  • 流量數據回顧

之後

  • 付費持有者數據(需可公開授權)
  • 定案後績效年度檢討

明確不做

  • 交易下單
  • 個人持倉
  • 價格預測與機率
  • 短線買賣訊號
Reflection

反思

  1. 負面結果同樣有價值大部分研究的結論是「這個沒用」。把它們留在產品之外,比多一個看似厲害的功能更重要。
  2. 誠實比漂亮的數字更能建立信任主動標示回測限制、設定定案日接受檢驗,是我對數據產品最在意的原則。
  3. 降低承諾也是一種產品決策中期功能從「訊號」降為「參考」、情境不給機率,都是依證據強度調整功能承諾。
  4. 把邊界寫清楚明確的「不做什麼」(不交易、不存持倉、不預測),讓每次新需求都能快速判斷要不要做。