我在 alpha 開發上的核心原則是:
1) 迭代速度
2) 可及性
這代表什麼?
第一點很明顯。如果你每天測試 10 個 alpha,而其他人每天只測試 2 個,那你會比其他人表現好很多。
那要怎麼做到?
首先,把資料抓取和前處理自動化。如果你沒有自動化腳本來做這些,你已經 NGMI(Not Gonna Make It)。這是基本門檻。
接下來,取得一個資料加載庫。你不應該每次都重寫 glob.glob(folder_path) 等等的程式碼。你應該使用:
load_data(
start_date=start_date,
end_date=end_date,
symbol=symbol,
等等
)
然後是研究數據。什麼是研究數據?
你可以從建立一個 universe 開始。你不該花時間手動定義 universe (而且理想上它應該是標準化的)。所以你應該載入一個檔案,內容是依 30 天交易量、市值或流動性等指標排序的前 X 名標的。你可以根據需求隨意調整。
接下來我們可以檢視報酬數據,我們應該有因子報酬、特異報酬、截斷報酬,當然還有原始報酬。這些全部都要事先產生好!
最後,我們要確保可以測試所有 alpha,而且測試程式碼要極速運行。你可能覺得只要 X 分鐘,但只要超過幾分鐘就是一次巨大的 context switch,會直接影響生產力。
我們剛剛講完了迭代速度,現在來談可
查看原文