《AI時代:碼農的涅盤重生》第133章 投資系統升級(1)

作者:Flint8·15天前

週二清晨,鵬城南山區的陽光透過百葉窗,在書房的地板上切割出明暗相間的條紋。林晨坐在電腦前,左手邊是半杯早已冷卻的美式咖啡,右手邊的螢幕上閃爍著複雜的程式碼。

距離T廠HR承諾的“最晚週二中午前出結果”,還有三個小時。

他沒有乾等。等待的焦慮反而轉化成了專注的能量——與其盯著時鐘一分一秒地煎熬,不如把這段時間變成技術打磨的寶貴視窗。

投資系統昨晚又完成了一輪交易。林晨開啟賬戶管理後臺,最新淨值曲線平穩向上,過去一週的累計收益率達到了3.2%。對於一個全自動執行、風險嚴格控制的多市場量化策略來說,這個數字已經相當可觀。

但林晨盯著倉位管理模組的日誌,眉頭微微皺起。

“問題出在倉位調整上。”他自言自語,手指在鍵盤上敲擊著調出詳細交易記錄,“系統識別到了黃金期貨的趨勢突破訊號,但加倉速度太保守了。”

日誌顯示,系統在確認趨勢後的六個交易小時內,分三次將倉位從初始的5%提升到15%。而根據林晨手動回測的經驗,在那種明確的多頭行情中,完全可以在確認訊號後的第一個小時就加到12%,第二個小時達到20%上限。

“還是太機械了。”林晨靠在椅背上,望著窗外騰訊大廈的玻璃幕牆,“固定的倉位調整規則,沒法適應不同市場、不同波動率環境下的最優策略。”

這個發現讓他既興奮又緊迫。興奮是因為找到了明確的最佳化方向,緊迫是因為他知道,如果現在不解決這個問題,等真正入職T廠開始高強度工作後,這個個人專案很可能會被擱置。

他點開手機,給張偉發了條微信:“老張,強化學習在量化倉位管理上有成熟案例嗎?”

幾分鐘後,張偉的電話直接打了過來。

“你小子還真是不閒著啊。”張偉的聲音帶著晨起的沙啞,“等offer的當口還在折騰系統?”

“總比干等強。”林晨笑了笑,“你瞭解這塊嗎?”

“略知一二。華爾街那邊幾年前就開始用DRL(深度強化學習)做動態倉位管理了,不過大部分是高頻策略。你想做的是中低頻吧?”

“對,日級別到小時級別的調倉。”

“那可以試試DQN(深度Q網路)或者PPO(近端策略最佳化)。”張偉顯然對這個話題很感興趣,“關鍵是要設計好狀態空間、動作空間和獎勵函式。狀態得包括市場資料、技術指標、賬戶資訊;動作就是加減倉的幅度;獎勵函式嘛……夏普比率?最大回撤控制?”

“我正在想這個。”林晨快速記錄著,“如果只用夏普比率,系統可能會過度追求低波動而錯失大行情。”

“那就複合指標。夏普比率佔60%,年化收益佔30%,最大回撤佔10%——權重你自己調。對了,訓練資料要足夠長,至少覆蓋兩輪牛熊週期。”

結束通話電話後,林晨的思路清晰了許多。他重新開啟PyTorch,新建了一個名為“rl_portfolio_nager”的資料夾。

上午九點半,A股開盤。林晨將系統切換到觀察模式,自己則開始搭建強化學習框架。

第一步是定義狀態空間。他整合了二十多個維度的資料:標的資產的當前價格、20日移動平均線、布林頻寬度、RSI強弱指標、成交量變化率……還包括賬戶層面的資訊,如當前倉位比例、浮動盈虧、可用資金等。

“狀態向量長度……87維。”林晨敲下確認鍵,“夠用了。”

動作空間相對簡單:從空倉到滿倉,按5%的步長劃分,共21個離散動作。獎勵函式則按照張偉的建議,採用複合指標,但林晨調整了權重——他更看重收益風險比,所以將夏普比率的權重提高到70%。

架構搭好,接下來是訓練資料。林晨調取了系統過去兩年的歷史回測資料,涵蓋A股、商品期貨、黃金ETF和外匯市場,總計超過五十萬條分鐘級別的K線記錄。

“開始訓練。”

他按下回車鍵,螢幕上的命令列視窗開始滾動數字。GPU佔用率瞬間飆升到98%,風扇發出輕微的嗡鳴聲。

等待訓練結果的時間變得異常緩慢。林晨起身續了杯咖啡,站在窗前俯瞰南山科技園的車流。早高峰已過,深南大道上的車輛依然川流不息,每一輛車裡都載著一個正在奔赴各自戰場的人。

猜你喜歡

同題材或同分類的其他作品。