我後來猜想原因是因為即使在資料庫裏頭建立1900個資料表 這不是又回到原來的問題,一樣都要在1900個檔案搜尋所要的檔案。 而且還比搜尋csv多了"...
後來有測試過即使根據股票代號在資料庫建立1900個資料表, 然後再從資料庫叫出這1900個資料表,要一分鐘4X秒,還是比CSV慢了10秒左右。
後來想到之所以用資料庫回測要13分鐘的原因是因為 比如每間公司有400多天的交易紀錄,變成每次電腦都要去1900*400天的交易紀錄去找指定公司的交易紀錄,比...
後來改成把資料庫一次全部讀到記憶體中,有比把1900個csv寫到記憶體快多,原本1900個CSV寫到記憶體要13分鐘,把資料庫一次寫到記憶體只需要一分多。
原本一開始程式碼有很多地方有拖累速度,可是在慢回測一天也只需要7分鐘,現在改成資料庫版本反而要13分鐘?而且還只是print(df)而已,還沒跑一堆策略。
還是說我程式碼有什麼問題嗎?如果回測一天讀取1900次資料庫,居然要跑13分鐘?CSV才一分半耶? stockidnew=[1900家公司代號略過 '9960'...
我後來改成資料庫版本,令人驚訝的如果回測一天,跑一千多家公司去讀取資料庫然後就只是當純的print(df)居然要跑13分鐘?比讀取csv檔案還要慢,如果用csv...
我找到解決方法了 謝謝 程式碼如下 先把1900個股票交易資料csv檔案分別建立一個 dataframe,然後加入到dict中 li = []...