← Alpha
Alpha Research · · 閱讀時間 14 分鐘

強化學習能靠交易加密貨幣獲利嗎?

219 次執行全數虧損。六種獎勵設計中有三種在扣除成本前取得正報酬,卻又全部吐回,因此這是成本問題,而非預測問題。

219
次執行,零失敗
0
次執行獲利
354
檔合約,其中 56 檔已下架
1.00
回測過度擬合機率

我們測試了什麼

給代理人一分鐘頻率的資料,標的是一組排除倖存者偏誤的幣安 USD-M 永續合約。讓它自行決定持有哪些合約、做多或做空、部位多大,以及何時改變主意。並向它收取交易真正的成本。它能賺錢嗎?

這個問題值得謹慎處理,因為已發表的紀錄相當薄弱。研究結果通常來自單次訓練,成本往往被省略,而比較基準通常是買進持有,而不是以相同強度交易的隨機代理人。上述每一項選擇都對方法有利。

標的範圍與決策

354 檔合約,其中 56 檔在樣本結束前下架,並按其實際交易日期保留在歷史資料中。標的範圍依當時資訊重建,以嚴格在前的 30 日美元成交額排序,且資格篩選在排序之前套用,因此不可能取決於結果。

決策為每小時一次,共 20 個持倉欄位,可多可空,單一合約上限為帳戶的 25%,總曝險上限為 100%。零附近設有無反應區間,使「不持有任何部位」成為容易達成的選擇,而非難以維持的臨界狀態。

在看到任何結果之前就已凍結的設定

20 個視窗的滾動驗證:18 個月訓練、3 個月驗證、3 個月測試,每個交界處皆設 7 日淨化期與 1 日禁制期。樣本外期間自 2021 年 11 月至 2026 年 8 月。標準化僅以訓練資料列擬合,檢查點依驗證結果選取,測試資料每個設定只接觸一次。

成本計入獎勵之內,而非事後扣除:每筆成交 5 個基點的吃單手續費與 2 個基點的基礎滑價,市場衝擊採平方根形式並以已實現波動度縮放,參與率上限為該區間成交量的 5%,資金費率按實際費率於真正的結算 K 棒計入。

評分規則事先寫定:以各隨機起始點的樣本外風險調整後報酬第 25 百分位數為準,並與相同週轉率的隨機代理人比較。這項統計量的選擇,結果比研究中其他任何因素都更關鍵。

結果

不能。219 次執行全數虧損,六種獎勵設計中有五種輸給以自身強度交易的隨機代理人。整份研究中最佳的風險調整後報酬,屬於一個買進後持有約 42 天的隨機代理人。

整個設定族群的回測過度擬合機率為 1.00,意即這些設計的樣本內排名在任何一次切分中都未帶有任何樣本外資訊,且經多重比較校正後無一存活。這本來只是個平淡的虛無結果,但底下有三項發現並不平淡。

這是成本問題,不是預測問題

將每種設計的損益拆解為「部位在扣除成本前賺到多少」與「交易花掉多少」,可以區分出兩種截然不同的失敗。

-40%-20%0%20%Sign of each trade+22.3%-55.6%-34.0%Net profit per trade+7.4%-29.7%-24.8%Log return+2.4%-17.0%-17.6%Volatility-scaled return-1.6%-14.1%-18.9%Return minus drawdown-3.0%-11.6%-17.7%Sharpe directly-10.6%-13.7%-24.7%
Before costsCost paidNet
Fig. 1: 三種設計在扣除成本前取得正報酬,卻付出該優勢的 2.5 至 7 倍。順序因此顛倒:淨報酬最差的設計,正是扣除成本前最好的設計。
獎勵設計扣除成本前成本資金費淨值成本 / 優勢
每筆交易的正負號+22.3%−55.6%−0.8%−34.0%2.5×
每筆交易的淨損益+7.4%−29.7%−2.6%−24.8%4.0×
對數報酬+2.4%−17.0%−3.1%−17.6%7.0×
波動度縮放後報酬−1.6%−14.2%−3.2%−18.9%—
報酬減最大回撤−3.0%−11.6%−3.2%−17.7%—
直接最佳化夏普比率−10.6%−13.7%−0.4%−24.7%—

以資本比例表示的每季平均值,涵蓋八個樣本外季度,每種設計五個隨機起始點。僅在扣除成本前報酬為正時列出比值,否則該比值沒有意義。

六種設計中有三種在八個季度的樣本外測試中找到正向的方向性優勢。順序顛倒了。淨報酬虧損最多的設計,正是在方向上最準確的那一個,且領先次佳者達三倍。

淨報酬排名最前的兩種設計,扣除成本前的報酬為負,因此它們名列前茅是因為便宜,而不是因為準確。這正是過度擬合機率為 1.00 背後的機制:排名衡量的是克制,而克制並不會像技巧那樣具備外推能力。

獎勵控制的是單筆交易規模,而非交易頻率。六種設計每小時的平倉次數介於 9.66 至 10.23 之間,差距僅 6%,但平均單筆規模相差 19 倍。這些設計的活躍程度相同,差別只在於膽量。

虧損最多的代理人,正是方向判斷最準的那一個。它只是把自己的優勢吐回了十九倍。

把問題的結構告訴網路,是影響最大的單一因素

有一項設計選擇的影響,超過所有其他受測變因。該策略網路讓 20 檔合約各自通過同一個小型編碼器,並共用單一決策輸出層,因此除了透過資料本身之外,它無法對不同合約採取不同對待。顯而易見的替代方案,是一個把 1,192 個輸入視為單一無差別向量的普通網路。

-20-15-10-50Shared per-asset encoder ~23k parametersrange -2.17 to -1.08 · turnover 1.3%/h-1.20Flat network, two hidden layers ~375k parametersrange -20.48 to -19.47 · turnover 85.1%/h-20.38Risk-adjusted return, mean across quarters
Fig. 2: 在相同獎勵、相同八個季度、各五個隨機起始點下,兩種策略的中位數與完整區間。兩者區間並無重疊。

差距達 19 點,且兩者區間完全沒有重疊。作為對照,獎勵設計的差距約為 2 點,而特徵選擇則完全無法區分。普通網路並不是學到了比較差的策略,而是從未學會持有部位:它每小時周轉 85% 的持倉,並在全部八個季度中被清空。

面對一個扁平向量,它無從得知輸入其實是 20 檔合約乘以 59 個欄位,再加上 12 個帳戶層級的數值,因此它的 20 個輸出彼此不共用權重,也沒有任何機制將某檔合約的資料連結到該合約自身的部位。它的參數量是共用編碼器策略的 16 倍,卻仍落後 19 點,可見關鍵在於把問題的結構告訴網路,而不在於模型規模。

這確立的是下限,而非提高了上限。共用編碼器策略依然虧掉 89% 的資本,且仍舊輸給以自身週轉率交易的隨機代理人。若在不計成本的模擬環境中,兩者會顯得接近得多,而這個領域已發表的研究有很大一部分完全不計成本。

隨機起始點主宰了所有比較

同一組設定、同一份資料、十個隨機起始點,風險調整後報酬的全距達 10 點。在 40 個起始點下,同一組設定的週轉率相差 50 倍。這足以淹沒此處任何想要衡量的效果。

0%10%20%30%40%123579random starting points used by the study26% at five
Price features onlyEvery feature
Fig. 3: 精確的子樣本頻率,而非模擬結果。對「僅價格」設定而言,以五個起始點進行的研究有 26% 的機率回報獲利中位數,而十個起始點顯示中位數為負。

單次訓練,也就是這個領域多數已發表研究的作法,在此設定下的偽陽性率為 40%。每五篇這類研究就有兩篇,會替一個在十個起始點下虧損 2.7 點的東西回報獲利中位數。這已足以解釋該領域的重現性紀錄,無須假設任何人不誠實。

-4.00-3.00-2.00-1.000.00Sign of each trade-4.73 to -2.5925th pct -4.30-3.58Net profit per trade-3.18 to -1.0625th pct -2.19-1.83Log return-2.76 to -0.7525th pct -2.67-1.33Volatility-scaled return-2.42 to -0.7025th pct -1.84-1.43Return minus drawdown-2.17 to -1.0825th pct -1.32-1.20Sharpe directly-2.28 to -1.0425th pct -2.16-1.97Risk-adjusted return, mean across quarters
Fig. 4: 各設計在八個季度、五個隨機起始點下的中位數與完整區間。紅色標示第 25 百分位數低於負三的設計,該百分位數才是事先登記的評分統計量,而非中位數。

把成本講清楚也解決不了

由於成本已計入獎勵,代理人拿到的是淨額。一種反駁是:單一個合併後的數字無法告訴它,虧損來自方向判斷還是來自手續費,因而使它無法學到「交易本身才是傷害來源」。手續費約佔典型每小時價格波動的 1.6% 至 10.2%,因此這項歸因必須從比訊號大 10 至 60 倍的雜訊中還原出來。

組別起始點每小時週轉率成本扣除成本前淨值週轉率 p 值
基準408.1%27.2%+4.2%−24.9%—
向代理人顯示成本1011.0%28.3%+1.9%−25.1%0.56
懲罰,5× 真實成本109.3%29.9%+5.6%−29.0%0.51
懲罰,25× 真實成本404.4%18.5%+4.8%−19.3%0.087

針對同一種獎勵設計的兩項介入。25 倍懲罰組與基準組各有 40 個隨機起始點,另外兩組各有 10 個。週轉率檢定為單尾。

向代理人顯示它上一個決策的成本,並未帶來任何可量測的改變。改為依其剛剛交易的金額按比例扣罰,倍率訂為真實成本的 25 倍,則使週轉率下降 45%、成本下降 8.7 個資本百分點,同時扣除成本前的報酬維持不變,淨值改善 5.6 個百分點。

四項指標同向變動,而這正是關鍵組合,因為該懲罰移除的是無法自償的交易,而不是承載優勢的交易。然而事先登記的門檻仍未通過,原因本身就是發現:懲罰壓低了週轉率分布的下半部,卻完全沒有觸及上四分位。即使被收取二十五倍的真實成本,仍有部分起始點每小時交易 12% 的持倉。

成本訊號無論多大聲,攔得住邊際的過度交易者,卻攔不住執意者。因此後續實驗屬於結構性而非經濟性:直接限制投資組合每小時可變動的幅度,讓過度周轉變成不可能而不只是昂貴,再檢視扣除成本前的優勢,能否在成本結構負擔得起的週轉率下存活。

發表前發現的缺陷

有三項值得點名,因為每一項都會產生看似可信的錯誤答案,而不是直接報錯。

系統曾以一個佔位價格,來結算轉入某個已更換合約之欄位的部位。等權重參考代理人因此回報 31 倍報酬,而手算的正確值為 1.46 倍。修正前的所有執行結果都已作廢。

曾有一次特徵比較,較窄的特徵集在資料完整性規則下存活的資料列反而多於較寬的特徵集,導致各組別落在不同樣本上,該比較實際上默默衡量的是資料覆蓋率而非資訊量。現在所有組別在提出任何主張前,都必須共用同一組資料列計數特徵碼。

最初的成本拆解,是將交易明細的各欄位跨視窗與跨起始點加總而得,這會重複計算,並把各自從 1 重新起算的每視窗資本比例相加。該明細採先進先出且僅記錄已實現部分,因此其加總與總報酬之間,本就會相差視窗結束時仍未平倉部位的市值評價。現在拆解一律取自模擬器本身的累加器。

一項被發現、發表,隨後撤回的結果

在五個隨機起始點下,一次特徵比較在四個樣本外季度取得 +42.5%,資料列經驗證完全相同,且具備合理機制,於是被寫成了結論。當同一組設定擴充至十個起始點後,其中位數由 +0.56 轉為 −2.67,總報酬由 +42.5% 轉為 −85.9%,因為最先執行的那五次正好是分布的上半部。

當七組特徵集全部擴充至十個起始點後,原先看似成立的排名隨即顛倒,且在校正 21 次比較後,沒有任何一對特徵集可被區分。誠實的解讀是:在所有嘗試過的樣本數下,特徵排名都只是雜訊。

事先登記的統計量,在擴充實驗給出原因之前,就已經拒絕了那個 +42.5%。這是本研究中支持「先寫下接受門檻再看結果」最有力的論據,其價值超過那項發現本身。

限制

本研究僅涵蓋單一交易所、單一成本模型下的每小時決策,因此對更短的時間尺度、其他交易場所、造市業務,或真實交易部門實際支付的成本,都無法說明。其中 22.3% 這個扣除成本前的數字最不可靠,因為產生它的設計每小時交易 32% 的持倉,已深入市場衝擊模型的範圍,使其本身的估計在六者中最依賴模型設定。

特徵比較僅涵蓋四個較晚期的視窗,因為多數合約在 2021 年 12 月之前並不存在未平倉合約量的歷史資料。作為基準的隨機代理人是以週轉率配對,而非以集中度配對;不過各策略的持倉中位數為 20 個欄位中的 15 個,且每個視窗涉及 35 檔不同合約,因此分散程度的差異很小。

二十個滾動驗證視窗中,有兩個原本保留的視窗在篩選階段被動用,違反了原訂計畫,使其被消耗,僅餘兩個未受汙染。次要的決策頻率網格因時間不足而放棄,因此頻率問題僅能依靠參考代理人回答。此處沒有任何內容構成交易策略,也沒有任何模型接觸過即時資料。

完整方法論

資料來源、依當時資訊建立標的範圍的規則、觀測與動作空間、成本與資金費模型、滾動驗證機制、六種獎勵設計、參考代理人、統計推論,以及各項阻斷式檢查,並附程式碼片段。

可重現性 →