用 Python 做策略回測,耗時很長,有什麼加速辦法?

時間 2021-05-06 19:04:01

1樓:vitu

一些經驗供參考:

1.改進資料載入的方式,往往資料載入是回測中比較費時的一部分,可以將回測資料儲存改為記憶體

2.使用numpy而不是pandas

3.可以嘗試cython

2樓:量化投資布道者

哈哈,大家都聊的很完整了,

1)其實計算邏輯還是比較重要的,有時候分析你真正需要計算的東西,理清演算法比找工具靠譜

2)計算需要準備的東西是否已經提前在記憶體準備好(我已默許大家不需要load資料了啊),零星計算歸納為批量計算

如果覺得自己load資料太麻煩,花了90%時間處理資料,可以看看我這篇 "量化策略一般用什麼平台回測?分別有什麼優劣勢? - 鐳礦Raquant 的回答 - 知乎"

3樓:越過刀鋒

我們目前正在開發的回測引擎使用的也是python,近期也在進行效能方面的優化,以下建議供參考:

1. 在動手優化之前,先profile看看,程式時間都花在哪些地方了:

python -m cProfile -o output.prof your_program

跑完之後,會生成乙個output.profile檔案。接下來需要對這個檔案進行分析,這方面的工具我推薦SnakeViz,神器。

安裝非常簡單,pip install snakeviz 即可。

snakeviz output.prof

4樓:富察

我的網絡卡一秒鐘能傳100MB的資料回測的速度大概就是這個級別吧

2018-04-25, 共有556w條tick,單執行緒0.9s跑完

5樓:馬大寶

比起計算,主要還是從資料庫裡調資料花費的時間最長,我大部分的優化都是集中在如何減少調資料的次數上。講真,CPU關係並不大,ssd硬碟才是王道。

6樓:李思

之前用過pandas處理過阿里巴巴大資料比賽的1000萬行資料,反正速度是比較快的每次操作都是只有十幾秒,可能做的方式不一樣比較簡單的操作吧,不過你那個的確稍微慢了點

7樓:

Python 算很快的了題主用過matlab 就知道什麼叫做慢了

實在不行換sas唄 40萬條簡單運算估計也就10-20min

8樓:知之

少用for,盡量用numpy/pandas的向量化方法。

少用自己寫的python方法,先看看numpy /pandas是不是已有現成的功能。

有幾個numpy 的加速包,比如numexpr.

安裝Intel MKL.

最後,可以講關鍵部分用c/c++實現。

如果無法避開python的for,建議使用Numba來提速,理想情況下可以達到和numpy向量化差不多的速度。

我只能幫你到這裡了||-_-

交易策略回測真的很重要嗎?

破滅法目 兩個作用 1 是檢測系統風險,2 根據1定義系統邊界 比方說系統回測最大回撤30 那你要考慮承擔的風險最多就是回撤30 接受這個系統就是接受這個風險。而實際操作中高於30 就是系統失效。 乙個人的隱山 回測當然很重要 首先對策略的理解很重要,出現極端情況如何處理,是否可以繼續信任策略,這些...

為什麼回測效果非常好的策略實盤卻不行?

投資思考筆記 白天鵝與黑天鵝的故事,看後視鏡開車翻車是早晚的事情,不要過度關注回測結果,要關注策略邏輯本身。回測很好 拋開回測常見錯誤 基本都是過度擬合。 林梟雄 一句話,股價的波動並不是乙個平穩過程 stationary process 也就是說,股價歷史和未來的關係不是穩定的,p X X 不等於...

想自學Python,請問用python做資料處理視覺化,和開發App小遊戲,是不同的學習路徑嘛?

可以交叉,我最近想做乙個解魔方的遊戲,可以當純遊戲玩,也可以用攝像頭掃瞄真魔方,在遊戲裡復現。可以是人工解,也可以是ai解,要有撤銷,反撤銷,轉動視角,轉動動畫,儲存讀取等功能。目前只完成了魔方建模,撤銷反撤銷,動態轉動的部分。還需要視覺化,解魔方ai,監控玩家操作,掃瞄還原真魔方,儲存讀取等功能。...