① 怎麼做實時的股票資料庫
如果主站提供有相關的介面的話,可以調主站的介面.如果主站不提供相關介面.那就不不斷抓取.獲取最新的信息了.
② 如何搭建自己的股票高頻資料庫(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日更新:
有不少小夥伴想要這個數據,目前我已經整理好上傳至網路網盤啦。數據和完整代碼私聊獲取。
獲取數據請只用於學習,勿直接用於投資決策!
③ 股票軟體怎麼開發
股票軟體開發的方法如下:
一、股票軟體開發定製分析
然後把它用軟體工程開發語言(形式功能規約,軟體需求分析就是回答做什麼的問題。一個對用戶的需求進行去粗取精、去偽存真、正確理解。即需求規格說明書)表達進去的過程。本階段的基本任務是和用戶一起確定要解決的問題,建立軟體的邏輯模型,編寫需求規格說明書文檔並最終得到用戶的認可。需求分析的主要方法有結構化分析方法、數據流程圖和數據字典等方法。本階段的工作是根據需求說明書的要求,設計建立相應的軟體系統的體系結構,並將整個系統分解成若干個子系統或模塊,定義子系統或模塊間的介面關系,對各子系統進行具體設計定義,編寫軟體概要設計和詳細設計說明書,資料庫或數據結構設計說明書,組裝測試計劃。
二、股票軟體開發設計
也可以是可組合、可分解和可更換的功能單元。模塊,股票軟體設計可以分為概要設計和詳細設計兩個階段。實際上軟體設計的主要任務就是將軟體分解成模塊是指能實現某個功能的數據和程序說明、可執行程序的順序單元。可以是一個函數、過程、子程序、一段帶有順序說明的獨立的順序和數據。然後進行模塊設計。概要設計就是結構設計,其主要目標就是給出軟體的模塊結構,用軟體結構圖表示。詳細設計的首要任務就是設計模塊的順序流程、演算法和數據結構,主要任務就是設計資料庫,常用方法還是結構化順序設計方法。
三、股票軟體開發定製編碼
即寫成以某一順序設計語言表示的「源程序清單」充沛了解軟體開發語言、工具的特性和編程風格,軟體編碼是指把軟體設計轉換成計算機可以接受的順序。有助於開發工具的選擇以及保證軟體產品的開發質量。
四、股票軟體開發測試
關鍵在於理解測試方法。不同的測試方法有不同的測試用例設計方法。兩種常用的測試方法是白盒法測試對象是源程序,股票軟體測試的目的以較小的代價發現盡可能多的錯誤。要實現這個目標的關鍵在於設計一套出色的測試用例(測試數據和預期的輸出結果組成了測試用例)如何才幹設計出一套出色的測試用例。依據的順序內部的邏輯結構來發現軟體的編程錯誤、結構錯誤和數據錯誤。結構錯誤包括邏輯、數據流、初始化等錯誤。用例設計的關鍵是以較少的用例覆蓋盡可能多的內部順序邏輯結果。白盒法和黑盒法依據的軟體的功能或軟體行為描述,發現軟體的介面、功能和結構錯誤。其中介面錯誤包括內部、外部介面、資源管理、集成化以及系統錯誤。
五、股票軟體開發與維護
對軟體產品所進行的一些軟體工程的活動。即根據軟體運行的情況,維護是指在已完成對軟體的研製(分析、設計、編碼和測試)工作並交付使用以後。對軟體進行適當修改,以適應新的要求,以及糾正運行中發現的錯誤。編寫軟體問題演講、軟體修改演講。
④ 開發炒股軟體,從哪裡獲得股票數據
行情數據源在上交所和深交所。需要購買。而且很貴。
象我們平常看到行情,是券商營業部所買,我們連到他們伺服器,而接收到數據。
P2P數據介面使用說明(1)2009-03-18 08:58介面使用說明:
1. 壓縮包包含四個文件,分別為P2P.exe,P2P.CFG,zlib.dll和使用說明.txt,可以解壓到任意盤任意目錄下使用。
2. 支持的行情分析軟體有:
(1) 分析家2006,2005等,要求分析家主窗口標題最前面的幾個字是"分析家 -",是否是破解版關系不大,最好是下載分析家官方網站的正版分析家,網址是http://www.fxj.com.cn,分析家其他版本號是否支持,我也沒全做試驗。
(2) 飛狐交易師,支持飛狐交易師,要求飛狐交易師主窗口標題最前面的幾個字是"飛狐交易師"或"證券分析師",是否是破解版關系不大,最好是支持正版,用正版的。
(3) 大智慧新一代,要求大智慧主窗口標題最前面的幾個字是"大智慧Level" 支持的版本號有 09.0226,08.0907,08.0801,07.0205 共四個。
註:如果分析軟體的窗口標題不符合上面說的,則分析軟體無法接收數據。以上三個分析軟體最好都是正版的,只要下載正版的軟體,安裝後,無需做任何修改即可使用。介面再次說明一下,介面中的四個文件解壓到任意目錄下使用都可以,而無需解壓到某個分析軟體的某個目錄下,或替代某個分析軟體的某個文件。介面完全是綠色的,無需安裝,也不會在注冊表中留下任何信息。
3. 每天9:15分以後用行情軟體中的數據管理功能先清除當天的行情數據,然後把右下角「發送數據」發送數據前面的鉤選上。
4. 如果不能在開盤前打開該軟體,比如10點半才打開,那麼該介面會自動補充10點半之前的行情數據,為了能夠盡快的把前面的數據補充完畢,請把速度調節到100以上。但如果是飛狐,則把該值調低一些,否則飛狐會來不及處理數據,把大量的數據放到內存中,造成飛狐使用內存越來越大,最後由於內存耗完造成飛狐或介面非法退出。大智慧和分析家則不存在這個問題。
5. 收盤後,該介面具有白天行情的回放功能,回放前,最好先清除行情軟體中當天的行情數據。
6. 該介面由於是P2P接收數據,因此數據接收需要種子,只有和別的種子連上了,你就能接收數據了,你至少要和一個種子連上,當然,你連上別的種子後,你也就能稱為種子了,你也就能為別的人提供數據服務功能了。
7. 兩個人要連接成功,最好兩個人中有一個人的IP地址是公網地址,如果兩個全是內網地址則相互無法直接聯通,必須藉助第三方才能聯通,該方法這里不再介紹了。
8. 如果網路情況比較良好,則行情數據的延時一般不會大於0.5秒。
9. 介面的P2P連接信息中的欄位說明
(1). 遠程完成--為該IP接收到完整數據包的個數。
(2). 遠程請求--為該IP請求你發送的數據包序號。
(3). 本機請求--為本機請求遠程發送數據包序號。
(4). 請求返回--遠程響應本機請求的次數。
⑤ 如何實時寫股票數據進資料庫
既然你已經設計了一個資料庫,並且每天通過從同花順軟體中導出EXCEL文件,再導入資料庫來完成數據的分析,那麼如果你想實時查看開盤數據,就可以使用同樣的方法。每天開盤後,你同樣可以從同花順軟體中導出開盤數據的EXCEL文件,然後導入到你的資料庫中進行實時分析。
使用這種方法,你可以隨時查看最新的市場數據,而不是等到每天收盤後才能獲取數據。這將大大提高你的工作效率和分析的及時性。
在導入數據的過程中,你可以考慮使用自動化腳本或工具,來簡化這一過程。比如,你可以編寫一個Python腳本,自動從同花順軟體中導出EXCEL文件,並將其導入到資料庫中。這樣,你就可以在開盤後立即獲得最新數據,並進行實時分析。
另外,為了確保數據的准確性,你還可以設置數據導入後的校驗步驟。例如,可以在導入數據後,通過編寫SQL查詢來檢查數據的完整性,確保沒有數據丟失或錯誤。
通過這種方式,你可以將實時數據無縫地集成到你的資料庫中,從而更好地支持你的投資決策和市場分析。
學習你的方法,確實能讓你更高效地利用數據,提高分析的准確性和及時性。希望我的建議對你有所幫助!
⑥ 如何開發股票軟體找誰做比較合適
1、開發股票軟體的大概周期在一個星期左右,只要客戶把軟體修改的方案交與軟體開發公司,軟體開發公司會盡最大的努力給您製作。
2、大概費用,山東股票軟體開發公司合理收取費用,不會是亂收費的,承諾一次性收費,不會二次收費,山東泰山股票軟體開發公司用自己過硬的技術實力幫助股民提供最好最安全的軟體開發,開發的軟體基本上完全滿足客戶的需要需求。
3、大概的一個流程是:選擇軟體開發模版→提交軟體修改方案→簽訂軟體開發合同→支付軟體開發費用定金→開始製作軟體→客戶查找軟體問題→提交軟體問題及時修改→確定軟體→支付餘款。
業務咨詢:網路股票軟體開發 李鋒 即可。
⑦ 【手把手教你】搭建自己的量化分析資料庫
量化交易的分析根基在於數據,包括股票歷史交易數據、上市公司基本面數據、宏觀和行業數據等。面對信息流量的持續增長,掌握如何獲取、查詢和處理數據信息變得不可或缺。對於涉足量化交易的個體而言,對資料庫操作的掌握更是基本技能。目前,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金融量化領域,通過知識星球獲取更多資源,包括量化投資視頻資料、公眾號文章源碼、量化投資分析框架,與博主直接交流,結識圈內朋友。