導航:首頁 > 數據行情 > mongodb股票數據存儲

mongodb股票數據存儲

發布時間:2025-01-09 00:28:20

⑴ 什麼是金融數據

怎麼給你說呢,學術化的定義很多,通俗點的例子,某隻股票一段時期的價格數據按既定的時間順序排列就可以稱之為一種金融時間序列數據。

⑵ 如何搭建自己的股票高頻資料庫(Python)

二話不說,先上結果。本文闡述了以下幾個方面:

下圖是編寫好的數據介面提取數據的示例。該數據介面支持多標的、多品種(股票、指數一起提取)、多欄位、多時間提取。並且支持不復權、後復權、等比前復權提取(前復權不太實用就沒有做)。而且速度巨快,沒有數據量的限制。如果你也覺得很香,請接著往下看,本文將手把手教你搭建這樣的資料庫。

資料庫搭建需要用到一些第三方庫,在各位動手之前請安裝:

本文的方法不涉及到常用的資料庫(不涉及MySQL、MongoDB),思路非常簡單,請各位放心食用。主要是使用pyarrow來加強代碼性能。雖然不涉及到常用資料庫,但這是我目前能想到的最有效的方法。

正所謂「巧婦難為無米之炊」,想搭建高頻資料庫,就需要一個數據源獲取高頻數據。在此,我推薦聚寬作為我們的數據源。 聚寬賬號的申請請點這里。新人用戶有每日100萬條數據,DataFrame的一行算一條,請各位務必珍惜自己的數據量。(不過我是正式用戶了,每天兩個億,就不太在意這一點哈哈。)

非會員的100萬條數據量能幹啥?我們來簡單計算以下:每個交易日有240條數據(4個小時,240條分鍾k線),假設一年有250個交易日,每隻股票每年需要佔用60000條數據。也即一日的數據量能夠提取一隻股票16年(100/6=16.66667)左右的股票分鍾數據。相當於資料庫的搭建過程還是相當艱難的,每天耗盡數據量只能下載好一隻股票的數據。(白嫖是這樣的啦,如果有條件可以聯系聚寬客服,購買正式賬號)

我們這里假設我們的資料庫記錄2015年至今的股票分鍾數據。(當然我自己的資料庫記錄的是2005年1月1日的全A股分鍾數據)這里,我們以貴州茅台(股票代碼 600519.XSHG)為例,演示數據的提取與保存。先看看數據如何從介面提取出來(這里需要用到各位申請的聚寬賬號):

來看看代碼運行的結果。

數據提取後,自然需要把數據保存起來。pandas.DataFrame有很多方便的方法可以將數據保存下來。為做對比,這里將數據保存為csv格式和ftr格式。

相對應的,我們可以用這樣的代碼將保存好的數據讀取進來。雖然pandas有read_feather函數,可以直接將ftr文件讀取進來,但這個速度比直接調用pyarrow的更慢一些。考慮到代碼性能,這里直接從pyarrow調用read_feather函數。

雖然兩種格式都能將數據完整地保存下來,但讀取速度上,ftr文件占據著絕對的優勢。因此,我們考慮到資料庫的性能以及資料庫所佔空間,我們選擇使用ftr格式儲存數據。feather正如他的名稱,像羽毛一樣輕,它所佔的空間會比csv更小。這是一種不佔空間,讀取速度又快的文件格式,太香了!

在前文中我提到了行情數據的提取、保存方法,並強調了一定要提取不復權的數據。這是為了與復權因子結合,還原各種形式的復權數據。至於復權的詳細定義,請參看 網路。

隨便打開一個股票看盤軟體,大致會有3種復權方式,即前復權、不復權、後復權。按照我自己的想法,可以這么理解:

在這樣的情況下,如果記錄價格數據,記錄前復權的數據是最沒有意義的,因為隔一段時間,歷史的價格就全變了。如果只做收益率相關研究的話,記錄後復權數據是可以的。然而,我們這里要搭建資料庫,所以採取「記錄不復權數據」加上「復權因子」還原的方法。

我們著手提取復權因子。在提取之前,不妨再理順一下思路:

思路理順了,我們來看看後復權因子的提取方法:

有了復權因子,如何計算復權價格?請接著看第3節——數據介面編寫。

提取了行情數據和復權因子數據,應當找個地方把它們存放起來。我分了兩個文件夾來保存我的數據。

在你搜集了足夠多隻股票的分鍾數據後,就能夠來到這一步,編寫一個數據介面方便調用數據。

數據介面的編寫重難點在於股票價格復權的計算。這里同樣以貴州茅台(股票代碼 600519.XSHG)為例來演示如何進行復權的計算。復權的核心在於下面這個公式:

[公式]

先來看看我們如何提取貴州茅台在一段時間(這里為2015-01-01至2021-09-08)內的後復權分鍾數據。(這里千萬不能將交易量和交易額一起拿去復權了。只有價格數據需要復權。(我不太確定交易量要不要,要的話我就改一改嘿嘿))

看看代碼運行的效果。

那麼,等比前復權該如何實現呢?其實很簡單,只需要在框定了復權因子的時間後,讓復權因子全序列除以最後一個復權因子,即得到前復權因子。將這個前復權因子乘上不復權的價格,即可得到等比前復權的價格數據。

以下是數據介面的全部代碼,裡面有挺多細節(但挺簡單的),我就不再贅述了。

要更新資料庫的數據,則是將資料庫中的所有數據文件逐個讀取進來,取最後一天作為start_date,然後取今天作為end_date。將新數據合並到原有的DataFrame中並保存就完成了數據的更新。數據更新比較耗時,也需要一定的數據量。不過,不論如何,我們來看看數據更新的代碼。

在編寫完這些代碼後,我把這些代碼整合成了一個python文件【high_freq_db.py】放在了site-package中,方便以後數據的調用和更新。

親愛的讀者,感謝你讀到這里。本文講述了我搭建我的股票高頻資料庫的方法。畢竟我的專業是金融而非計算機,難免會有不足的地方,懇請大家在評論區指出。(華工封校了,我也快瘋了,所以一天寫了兩篇東西。。。。)

另外,這個資料庫完全搭建起來之後會非常大(行情數據佔80GB左右,包含指數和個股ftr文件),維護起來也比較費時費力,就不對外公布了(我也不知道怎麼公布【手動捂臉】)。如確有需要,可以和我私信。

再次感謝大家的閱讀!

——————————————————

2022年5月27日更新:

有不少小夥伴想要這個數據,目前我已經整理好上傳至網路網盤啦。數據和完整代碼私聊獲取。

獲取數據請只用於學習,勿直接用於投資決策!

⑶ quant應該學習哪些python知識

想在量化交易領域發揮所長,掌握以下Python知識是至關重要的。首先,從研究角度出發,了解常用的庫如NumPy、Pandas、Matplotlib、SciPy和Scikit-learn,這些都是數據處理、統計分析、繪圖和機器學習的基礎工具。此外,熟悉金融領域的特定庫,如QuantLib,可以幫助進行復雜金融產品的定價和風險評估。

在交易方面,掌握自動化和半自動化下單功能至關重要。這包括使用Python編寫策略回測代碼,如使用通聯優礦、掘金或vn.py框架。利用這些框架可以模擬實盤交易,避免未來函數的使用,確保策略在實盤中的一致性。同時,學習如何與交易櫃台介面進行交互,以便直接實盤下單,通常需要使用如掘金、vn.py的vn.lts或vn.ctp介面。

為提高計算效率,了解如何使用Cython進行Python代碼的加速,以及如何利用Boost.python或SWIG封裝C/C++庫,從而在Python中調用這些高性能語言的函數。此外,熟悉Excel COM介面的使用,可以實現從Excel生成每日交易記錄和報表。

開發GUI界面是提高交易員實時監控效率的關鍵,推薦使用PyQt,其界面開發速度遠超Qt,且底層為C++,性能無需擔憂。對於移動設備監控,開發Web界面也是一個不錯的選擇。

在數據處理方面,MongoDB因其方便的數據存儲和檢索特性,成為量化交易中數據管理和分析的首選。使用MongoDB可以高效存儲、檢索和管理大量歷史數據、交易日誌以及交易系統參數。

掌握集成開發環境(IDE)如Spyder和WingIDE,能顯著提高開發效率。在策略回測階段,使用Spyder編寫測試腳本更為便捷,而在開發大型程序時,WingIDE的智能提示和自動完成功能則更為實用。

了解交易介面的開發,特別是使用vn.py框架,對於期貨、股票和期權交易尤為重要。熟悉不同交易類型和策略的實現,開發特定的Python函數和演算法,以簡化下單功能。

Python語言的擴展性是其一大優勢,了解如何利用cython提升計算性能、使用boost.python和swig封裝API、調用matlab演算法以及通過COM介面與Excel集成,能顯著增強量化交易策略的實現能力。

最後,Python在量化交易領域的地位是全面的,能夠覆蓋從策略研究到交易執行的整個流程。相較於C++、C#、Java等語言,Python在策略開發上的靈活性和易用性更勝一籌,而在交易執行速度上,可能略遜於C++。然而,Python的膠水語言特性使其在整合不同工具和系統方面具有獨特優勢,能夠快速構建高效的量化交易系統。

總之,掌握上述Python知識,結合金融市場的實際需求,能夠助力你構建高效、靈活的量化交易策略,實現從研究到實盤交易的無縫銜接。

⑷ 小白入門量化交易:vn.py數據獲取和初步回測

經過初步嘗試,vn.py在數據獲取和回測過程中遇到一些問題,但也帶來了新的學習體驗。本文將分享我的解決過程和未來計劃。

首先,我解決了數據獲取的基本問題。原本因為誤寫交易所簡稱,導致無法下載股票數據。正確的交易所包括CFFEX、SHFE、SSE和SZSE。對於大量股票的數據下載,目前還未能實現批量處理,需要進一步探索。

數據存入方面,我將vn.py默認的sqlite資料庫改為mongodb,以便於可視化和管理。通過mongoDB,我發現數據以字典形式存儲,包括時間、價格和成交量等,適合初步的回測操作。然而,成交量數據類型問題導致回測失敗,需要清洗數據將其轉換為int類型。

盡管使用了vn.py的示例策略進行回測,結果並不理想,這提示我策略選擇和參數優化還有待改進。我計劃參考vnpy的策略文件,優化策略和參數,但目前面臨股票池選擇的挑戰,因為不可能對所有股票進行回測,需要挑選關鍵股票。

未來,我計劃利用rqdata的API獲取股票數據,並將其導入mongoDB。開學後可能時間緊張,但我會抓緊時間解決這個問題,尋找適合的股票池,以便進行更為系統和有針對性的回測。

總的來說,盡管遇到挑戰,但這個過程也讓我對量化交易有了更深入的理解,期待後續的進展。

⑸ 【手把手教你】搭建自己的量化分析資料庫

量化交易的分析根基在於數據,包括股票歷史交易數據、上市公司基本面數據、宏觀和行業數據等。面對信息流量的持續增長,掌握如何獲取、查詢和處理數據信息變得不可或缺。對於涉足量化交易的個體而言,對資料庫操作的掌握更是基本技能。目前,MySQL、Postgresql、Mongodb、SQLite等開源資料庫因其高使用量和受歡迎程度,位列2018-2019年DB-Engines排行榜前十。這幾個資料庫各有特點和適用場景。本文以Python操作Postgresql資料庫為例,藉助psycopg2和sqlalchemy實現與pandas dataframe的交互,一步步構建個人量化分析資料庫。

首先,安裝PostgreSQL。通過其官網下載適合操作系統的版本,按照默認設置完成安裝。安裝完成後,可以在安裝目錄中找到pgAdmin4,這是一個圖形化工具,用於查看和管理PostgreSQL資料庫,其最新版為Web應用程序。

接著,利用Python安裝psycopg2和sqlalchemy庫。psycopg2是連接PostgreSQL資料庫的介面,sqlalchemy則適用於多種資料庫,特別是與pandas dataframe的交互更為便捷。通過pip安裝這兩個庫即可。

實踐操作中,使用tushare獲取股票行情數據並保存至本地PostgreSQL資料庫。通過psycopg2和sqlalchemy介面,實現數據的存儲和管理。由於數據量龐大,通常分階段下載,比如先下載特定時間段的數據,後續不斷更新。

構建數據查詢和可視化函數,用於分析和展示股價變化。比如查詢股價日漲幅超過9.5%或跌幅超過-9.5%的個股數據分布,結合選股策略進行數據查詢和提取。此外,使用20日均線策略,開發數據查詢和可視化函數,對選出的股票進行日K線、20日均線、成交量、買入和賣出信號的可視化分析。

資料庫操作涉及眾多內容,本文著重介紹使用Python與PostgreSQL資料庫的交互方式,逐步搭建個人量化分析資料庫。雖然文中使用的數據量僅為百萬條左右,使用Excel的csv文件讀寫速度較快且直觀,但隨著數據量的增長,建立完善的量化分析系統時,資料庫學習變得尤為重要。重要的是,文中所展示的選股方式和股票代碼僅作為示例應用,不構成任何投資建議。

對於Python金融量化感興趣的讀者,可以關注Python金融量化領域,通過知識星球獲取更多資源,包括量化投資視頻資料、公眾號文章源碼、量化投資分析框架,與博主直接交流,結識圈內朋友。

⑹ 利用Tushare獲取股票數據(全面詳細,照著敲就可以)

利用Tushare獲取股票數據的全面指南


Tushare是一個專為金融分析人員設計的免費Python財經數據介麵包,它簡化了從數據採集到存儲的過程,以pandas DataFrame格式提供高效的數據。通過Python的pandas、NumPy和Matplotlib,分析人員可以方便地進行數據處理和可視化,同時支持Excel和關系型資料庫的分析。Tushare覆蓋了股票、基金、期貨、數字貨幣等廣泛的數據內容,以及基本面數據,如公司財務和基金經理信息,且支持多語言的SDK和RESTful介面,適應不同用戶的需求。數據存儲選項包括Oracle、MySQL、MongoDB、HDF5和CSV,確保了數據獲取的性能和便利性。


安裝Tushare依賴環境只需執行pip install tushare,查看版本信息時,導入並列印tushare的__version__屬性即可。以下是使用Tushare獲取股票數據的步驟:



  1. 導入所需庫,如pandas、matplotlib和tushare。

  2. 設置數據格式和日期,使用qfq前復權方式獲取股票數據。例如,通過定義get_data函數獲取指定股票在特定日期范圍內的數據。

  3. 使用acquire_code函數下載股票數據,並保存為CSV文件。用戶需要輸入股票代碼、開始和結束日期。

  4. 運行acquire_code函數,輸入股票代碼,如600893.SH。

  5. 數據下載完成後,文件將保存在指定文件夾中,通過查看文件夾來獲取爬取的數據。

閱讀全文

與mongodb股票數據存儲相關的資料

熱點內容
2015年尚未重組的股票 瀏覽:506
股票走勢當找金多多策略 瀏覽:25
眾生醫療股票行情 瀏覽:564
為什麼不同的機構給出的股票的數據不一樣 瀏覽:586
微信股票老師二維碼最新今天 瀏覽:966
股票大漲指標組合 瀏覽:503
長時間低換手率的股票 瀏覽:511
注冊制股票如何怎麼追漲停板 瀏覽:443
第三方存管股票賬戶關系 瀏覽:134
10轉6股票價格會有影響嗎 瀏覽:322
7月3日證券股票集體漲停 瀏覽:706
中國目前有多少股票上市 瀏覽:906
股票2020年元旦節時間咋安排 瀏覽:185
st電機股票 瀏覽:938
股票資金賬戶更名 瀏覽:839
賣完股票資金凍結 瀏覽:941
匯金科技股票歷史交易記錄 瀏覽:807
st是什麼股票退市了錢怎麼辦 瀏覽:416
股票買賣必備計算軟體 瀏覽:705
如何轉股票賬戶資金 瀏覽:157