窗外的鵬城科技園在晨光中甦醒,高樓玻璃幕牆反射著金色的陽光。林晨坐在書桌前,螢幕上不是股票行情,而是一行行 Python 程式碼。
昨晚測試完情緒指標模型後,一個問題像根刺一樣紮在他心裡——回測。
他用的那些量化平臺提供的回測功能,總覺得哪裡不對勁。手續費計算太粗糙,滑點模擬不真實,最關鍵的是,無法同時對比多個策略在完全相同條件下的表現。
“程式碼可以騙人,但邏輯不會”。林晨喃喃自語,這是他這段時間形成的口頭禪。
他決定自己寫一個。
上午九點,送完樂樂去幼兒園的蘇婉輕輕推開書房門,看到丈夫正對著白板畫架構圖。白板上已經寫滿了模組名稱:資料層、策略層、交易層、評估層、視覺化層……
“又要開新專案”?蘇婉端著溫水進來。
林晨接過水杯,眼睛還盯著白板:“得有個靠譜的回測框架。那些平臺的回測,就像用尺子量空氣——看起來有模有樣,實際誤差大到能坑死人”。
“需要多久”?
“三五天吧”。林晨喝了口水,“這次得寫紮實點,以後所有策略都基於這個框架測試,相當於給自己建個實驗室”。
蘇婉點點頭,沒多問技術細節,只是輕聲說:“別太拼,中午記得吃飯”。
書房門輕輕關上。林晨重新面對白板,思維像手術刀一樣精準地解剖問題。
回測的核心是什麼?
是模擬真實交易環境。但“真實”二字包含無數細節:交易時間、漲跌停限制、T+1 制度、手續費(印花稅、佣金、過戶費)、滑點(報價與實際成交價的偏差)、資金利用率、分批建倉的衝擊成本……
林晨在“交易層”模組下又畫出幾個子模組。每細化一層,他就更清楚那些量化平臺的回測為什麼不可信——它們做了太多理想化假設。
“從今天起,我的系統裡沒有‘理想’二字”。林晨對著空蕩蕩的房間說。
他開啟 VS Code,新建專案資料夾:QuantBacktestFrawork。建立 READ. 檔案時,他在第一行寫下專案目標:
“一個儘可能逼近 A 股真實交易環境的回測框架,支援多策略並行對比,視覺化分析,為實盤提供可靠依據”。
接下來的三天,林晨進入了心流狀態。
早晨七點起床,八點開始編碼,中午簡單吃個外賣,下午繼續,晚上陪家人兩小時,九點後又回到電腦前。這種節奏讓他想起剛畢業那會兒在鵬城加班趕專案的日子,但心境完全不同——那時是被迫,現在是主動;那時為別人寫程式碼,現在為自己建系統。
第一天,資料層。
他設計了一個統一的資料介面,支援從本地 CSV 檔案、資料庫、甚至線上 API 獲取歷史資料。資料必須包含最基本的 OHLCV(開盤、最高、最低、收盤、成交量),還要能擴充套件自定義欄位——比如他之前做的情緒指標。
關鍵點在於處理 A 股的特殊性:除權除息。如果回測時忽略這個,收益率計算會嚴重失真。林晨寫了個復權因子計算模組,確保價格序列連續可比。
“這就對了”。他測試了幾隻股票,看著復權後的 K 線圖平滑連貫,滿意地點點頭。
第二天,策略層。
這是框架的核心。林晨設計了策略基類 BaseStrategy,所有具體策略都必須繼承這個類,實現幾個關鍵方法:initialize 初始化,handle_bar 處理每個交易日的資料,generate_signal 生成交易訊號。
為了讓多策略對比成為可能,他引入了策略組合的概念。可以同時載入三個、五個甚至十個策略,在完全相同的時間序列、相同的初始資金、相同的交易規則下執行。
“讓我看看,到底是雙均線策略厲害,還是我的情緒增強模型更強”。林晨寫測試程式碼時,嘴角微微上揚。
。層估評與層易,天三第
。件文則規易 A 了遍翻乎幾晨林。分部的瑣繁最是這
。%1.0 的額金取收時出賣:稅花印
。元 5 低最筆單,)率費低較的到找能他是這(算計五點二之分萬按他:金佣
。收免市深,%200.0 的額金票市滬:費戶過
。)大更點票的差流(點態的量於基及以、)%1.0 如(點比分百、)元 10.0 如(點定固——式模種三了定設他:擬模點
。理同停跌時出賣;法無際實,價停漲發號訊果如時買:制限停跌漲
。大巨響影略策線短對則規個這。出賣能才天明,票的買天今:度制 1+T
。度程的笑可到化簡算計費續手些有,停跌漲略忽些有,易 0+T 許允然居臺平些有——測回的臺平化量不現發他中程過。況界邊種幾試測就組模個一完寫每,現實碼編個個一則規些這把晨林
。笑苦頭搖他。”水就盤實,很著看益收測回得不怪“
。標指鍵關個多十二了計設,系估評的金基化量業專了考參晨林……線曲金資、期週倉持、數次易、比虧盈、率勝、撤回大最、率比普夏、率益收化年。面全須必標指但,些單簡對相層估評
。層化覺視,天四第
。板面化覺視套一了發開,合結 strahceyp 和 biltolpt 用晨林。的”驗者用使“給是這
:含包,面頁告報 TH 個一生自會,後測回行執
。劣孰優孰出看眼一,示顯加疊線曲金資的略策個多——圖比對線曲金資
。況佈分的易損虧和易利盈看——圖方直佈分益收
。然瞭目一淺深,差份月個哪,好現表略策份月個哪——圖力熱益收度月
。久多了續持,候時麼什在生發撤回大最——線曲撤回
。等率用利位倉、間時倉持均平——析分倉持
。溯追可都虧盈、量數、格價、間時的易筆每——格表細明易
。一第晰清,上至能功——審的發開端後年十了做他是這。高很度訊資但,畫的哨花有沒,業專潔簡得做面介把意特晨林
。型本基架框,午下天五第
。年四整整,日 13 月 21 年 3202 到日 1 月 1 年 0202 是圍範間時,迪亞比、代時德寧、臺茅州貴:票隻三了擇選他。試測整完次一第行進備準,氣口一吸深晨林
:略策個三載








