一位交易者把近六年、超過 4 萬筆 BTC 訂單和 17 萬筆成交明細全部開源——兩輪完整牛熊、超過 2000 天的真實博弈記錄。這不只是數據,這是 AI 時代最稀缺的東西:有標籤、有時序、有情緒的真實上下文。
目錄+
大多數人在談 AI 訓練數據的時候,說的都是「大量數據」。但數量從來不是瓶頸——真正稀缺的是有意義的上下文。
一個交易者最近把自己近六年的 BTC 真實交易記錄開源到 GitHub。不是示意圖、不是回測模擬、不是從交易所抓下來的公開 K 線——是一個真人在市場裡做出的每一筆決策:何時買、何時賣、成交在哪個價位、當時承受了多少波動。
這份數據是什麼
數字先說清楚:
- 40,000 筆以上訂單記錄(從 2020 年 5 月至今)
- 170,000 筆以上成交明細
- 兩輪完整牛熊循環——2021 年的爆升到 69K、2022 年的崩跌到 15K、2023–2024 年的再次攀升到 100K 以上
- 超過 2000 天的連續時序記錄
這意味著什麼?它覆蓋了 BTC 近代史上最劇烈的三個階段:疫情後的流動性暴漲、Luna 崩盤引發的信心危機、以及 ETF 核准前後的機構入場。每一筆訂單都嵌在那個時代的市場情緒裡。
為什麼「上下文」才是重點
現在問一個 LLM:「2022 年 6 月 BTC 在 18,000 美元時應該買進還是繼續等?」
它能給你一個聽起來合理的答案,但那個答案沒有代價。它不知道在那個時間點,大多數人的倉位是虧損的;它不知道當時市場裡流傳的是「BTC 將跌破 10K」的恐慌情緒;它更不知道一個在那個時點真實下單的人,心裡在想什麼、承擔著多少風險。
這正是 @coolish 說的那句話的核心:「AI 時代,最寶貴的就是上下文。」
語言模型需要的不只是價格序列,而是嵌入真實決策情境的行為數據。一個交易者在 Luna 崩盤後兩週重新建倉的記錄,和一條「BTC 在此時跌了 60%」的知識陳述,對 AI 的訓練價值完全不在同一個量級。
這份數據能做什麼
1. 策略回測的真實錨點
傳統回測有一個根本性的問題:你用公開 K 線測試的策略,在真實交易環境裡往往表現差得多。原因之一是滑點和成交時機——你的訂單不一定能以 K 線收盤價成交。
這份數據包含真實的成交明細,意味著你可以:
# 用真實成交價而非理想價格計算策略表現
df = pd.read_csv('trade_records.csv')
# 計算真實滑點
df['slippage'] = df['filled_price'] - df['order_price']
# 在兩輪牛熊中分別評估策略
bull_trades = df[df['market_phase'] == 'bull']
bear_trades = df[df['market_phase'] == 'bear']
print(f"牛市平均滑點: {bull_trades['slippage'].mean():.2f}")
print(f"熊市平均滑點: {bear_trades['slippage'].mean():.2f}")
這種粒度在公開數據集裡幾乎不存在。
2. AI 交易策略訓練的語料
如果你在訓練一個 AI 交易 agent,你需要的不只是「價格在此時是 X,在彼時是 Y」。你需要的是一個有邏輯的決策序列:在什麼市場條件下,一個真實的人選擇了什麼行動,然後產生了什麼結果。
這份數據天然具備這個結構。2000 天的連續記錄讓你可以把每一筆交易還原到當時的市場背景——RSI 是多少、MACD 在哪個位置、距離上次高點跌了多少——然後用這些特徵來訓練一個有情境感知能力的模型。
# 為 AI 訓練建立有上下文的特徵集
def build_context_features(trade, market_data):
return {
'price_vs_30d_high': trade['price'] / market_data['30d_high'],
'days_since_last_peak': market_data['days_since_ath'],
'volume_zscore': market_data['volume_zscore_7d'],
'consecutive_red_days': market_data['red_days_streak'],
# 決策行為
'action': trade['side'], # BUY / SELL
'confidence': trade['qty'], # 倉位大小反映信念強度
'outcome_7d': trade['pnl_7d'], # 短期結果標籤
}
3. 市場行為研究
兩輪完整牛熊意味著你可以研究一個問題:同一個人在不同市場環境下的決策模式是否有系統性差異?
牛市裡他傾向於在回調點加倉還是在突破點追入?熊市裡他的止損紀律是否更嚴格?這種行為模式的分析,在學術研究和量化策略設計上都有價值。
開源真實交易數據的代價
這件事不是沒有門檻的。開源你的真實交易記錄,代表你在公開你:
- 資金規模的量級(成交金額暴露倉位大小)
- 策略邏輯(連續的買賣行為會被有心人反推)
- 歷史虧損(不只是盈利,熊市裡的虧損明細同樣在裡面)
能做到這一點,需要相當程度的公開意願,或者對數據本身的學術/社群價值有高度認同。從這個角度看,這份開源行為本身就值得正視。
它讓我們看見什麼問題
這份數據的出現,也在間接指出一件事:現在 AI 交易工具的訓練語料,大多數都是乾淨但不真實的。
合成數據、公開 K 線、回測記錄——這些數據都有一個共同缺陷:它們缺乏真實決策者在壓力下做出選擇的痕跡。Luna 崩盤當天,一個真實的交易者是恐慌平倉、還是選擇加倉攤平、還是什麼都不做?這個選擇背後的邏輯和情緒,是任何合成數據都無法複製的。
Andrej Karpathy 曾說,LLM 的能力上限由訓練語料的品質決定,而不只是數量。對 AI 交易模型來說,這個命題更直接:模型能做出多好的決策,取決於它見過多少真實的決策。
如何取用這份數據
數據已開源在 GitHub,可以直接 clone 下來:
git clone https://github.com/coolish/btc-trading-history
# 或根據實際 repo 路徑調整
# 查看數據結構
ls -la data/
# orders/ - 訂單記錄(4 萬筆+)
# trades/ - 成交明細(17 萬筆+)
# summary/ - 每日匯總數據
# 用 pandas 載入
import pandas as pd
orders = pd.read_csv('data/orders/all_orders.csv')
trades = pd.read_csv('data/trades/all_trades.csv')
print(f"訂單總數: {len(orders):,}")
print(f"成交明細總數: {len(trades):,}")
print(f"時間跨度: {orders['timestamp'].min()} ~ {orders['timestamp'].max()}")
實際 repo 結構請以 GitHub 頁面為準。原始推文裡有連結,或直接搜尋作者 @coolish 的 GitHub。
數據背後的一個思考
過去幾年,AI 工具的門檻主要在算力和模型——這兩者現在都在快速普及化。真正的差距,正在向數據的品質和情境深度轉移。
一個能訓練在 6 年真實交易記錄上的 AI 策略,和一個只見過公開 K 線的模型,在面對 2026 年某次突然暴跌時,表現差距會有多大?這個問題,現在有了一個可以開始回答的起點。
上下文是稀缺的。有人願意把它開放出來,值得認真對待。