㈠ 關於股票逐筆成交數據的小技巧
搭建逐筆成交資料庫並挖掘逐筆數據因子是獲取股票Alpha信息的有效途徑。在操作過程中,需先准備一台支持計算任務的電腦,並找到數據源。逐筆數據通常以交易日命名,包含數千個CSV文件,每個文件對應一個股票。數據量龐大,需要分塊處理,以避免內存不足。舉例,以平安銀行為例,一天的交易數據量可達近7千萬行,數據處理難度大。數據應分塊存儲,每個交易日的數據存為一個文件夾,內含若干數據塊,每塊約200萬行,以支持並行處理。Python+Pandas處理數據時,推薦使用feather文件格式,因其壓縮率高且讀取速度快。因子計算通常分為兩步:首先形成sub_factor,然後匯總為最終factor。此過程需將所有sub_factor並行計算,並邊計算邊保存。最終匯總所有sub_factor,完成因子計算。此方法提高了因子計算的效率和可行性。
㈡ gplearn:遺傳演算法與因子挖掘(代碼+期貨分鍾數據)
今天,我們將探討因子挖掘的領域,這是量化投資中的一個重要組成部分。在構建投資模型時,數據和因子的選擇至關重要。雖然模型的構建能力強大,但數據和因子的豐富性決定了模型的性能。數據的稀缺性和獨特性是構建alpha的關鍵。因此,因子挖掘成為了提高模型表現的策略之一,即使用相同的數據構造出不同的因子,這與傳統量化基於規則的因子處理方式形成了對比。
傳統量化方法通常依賴於人工設定的規則和因子,例如20日動量因子。然而,選擇特定閾值(如0.08)作為交易信號的決策依據,往往缺乏理論依據,且依賴於主觀判斷。為了解決這一問題,多因子策略通常通過綜合排序或加權合成新因子,但這種方法過於主觀,且因子數量受限。
為了解決上述問題,引入了機器學習方法。特別是符號回歸演算法,通過監督學習方法,試圖發現隱藏的數學公式,以此預測目標變數。gplearn是Python中一個成熟的符號回歸庫,它允許模型消化成百上千的因子,極大地減少人工主觀判斷的工作量,但同時也需要高質量的數據和有效的因子選擇。
接下來,我們將通過一個例子來演示如何使用gplearn進行因子挖掘。首先,我們定義一個適應度函數,其目的是最小化殘差的平方和。在這個例子中,我們將使用gplearn庫的SymbolicRegressor來構建模型。通過配置參數如population_size、generations、fitness function、tournament_size、function_set等,我們可以定製模型的訓練過程,以尋找最優的數學公式來預測目標變數。
在代碼示例中,我們定義了兩個不同的目標函數:Y1 = X[a] + X[b]和Y2 = cos(X[a]) - sin(X[b])。對於每個目標函數,我們分別使用gplearn進行模型擬合,並輸出模型結果。通過這種方式,我們可以觀察模型如何從數據中發現並構建相應的數學公式,以預測目標變數。
最後,我們執行代碼並計算總運行時間。結果展示了gplearn在因子挖掘方面的強大能力,通過自動生成數學公式,能夠對復雜數據集進行有效建模,從而在量化投資領域提供更精確的預測和決策支持。
總之,因子挖掘是量化投資領域的一個重要課題,通過機器學習方法如gplearn,我們能夠從數據中發現深層次的關聯,構建更准確、更有效的預測模型。這種技術的應用不僅限於量化投資,也廣泛應用於金融市場的其他方面,如風險管理、資產配置等,對於提高投資策略的性能具有重要意義。