A. 如何製作一個實時統計股票的excel,求高手指點
打開excel軟體,第一行輸入名稱,然後進行合並居中。
第二行輸入下圖圖例中各項數值的名稱。
至此准備工作已基本完成。
B. 如何搭建自己的股票高頻資料庫(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日更新:
有不少小夥伴想要這個數據,目前我已經整理好上傳至網路網盤啦。數據和完整代碼私聊獲取。
獲取數據請只用於學習,勿直接用於投資決策!
C. 股票軟體用什麼語言
股票軟體主要用C++或者Python語言進行開發。
詳細解釋如下:
一、股票軟體開發語言概述
股票軟體是用於股票交易、分析、預測的工具,其開發涉及多種編程語言。其中,C++和Python是兩種常見的選擇。
二、C++在股票軟體中的應用
C++是一種面向對象的編程語言,因其高效、靈活的特性而被廣泛用於股票軟體的開發。股票軟體需要處理實時數據、進行復雜的演算法計算,C++的高性能可以滿足這些需求。此外,其強大的庫支持也有助於開發者快速構建功能豐富的股票軟體。
三、Python在股票軟體中的應用
Python是一種解釋型語言,以其簡單易學、開發效率高的特點受到開發者的青睞。在股票軟體開發中,Python可以用於實現各種功能,包括數據分析、可視化、策略回測等。此外,Python有許多第三方庫,如Pandas、NumPy、Matplotlib等,可以方便地處理金融數據、進行數據分析及可視化。
四、總結
股票軟體的開發可以選擇多種編程語言,其中C++和Python是較為常見的選擇。C++因其高效、靈活的特性而適用於處理實時數據和復雜演算法;而Python則因其簡單易學、開發效率高以及豐富的第三方庫而廣泛應用於數據分析、可視化等方面。開發者可以根據項目需求和自身擅長選擇合適的編程語言進行開發。
D. 鑲$エ杞浠朵竴鑸鐢ㄤ粈涔堣璦寮鍙
鑲$エ杞浠朵竴鑸浣跨敤C++銆丳ython鍜孞ava絳夎璦榪涜屽紑鍙戙
C++浣滀負涓縐嶉珮鏁堛佺ǔ瀹氱殑緙栫▼璇璦錛岄潪甯擱傚悎鐢ㄤ簬寮鍙戝規ц兘鍜岀ǔ瀹氭ц佹眰杈冮珮鐨勮偂紲ㄨ蔣浠躲傚畠鏀鎸侀潰鍚戝硅薄緙栫▼錛屼嬌寰楀紑鍙戣呭彲浠ュ壋寤哄嶇敤鐨勪唬鐮佹ā鍧楋紝鎻愰珮寮鍙戞晥鐜囥傚悓鏃訛紝C++鐨勭紪璇戝瀷鐗規т篃淇濊瘉浜嗙▼搴忓湪鎵ц屾椂鐨勬ц兘銆備緥濡傦紝涓浜涢渶瑕佸疄鏃跺勭悊澶ч噺鑲$エ鏁版嵁鐨勮蔣浠訛紝濡備氦鏄撶郴緇熷拰琛屾儏鍒嗘瀽杞浠訛紝閫氬父浼氶夋嫨C++浣滀負涓昏佸紑鍙戣璦銆
Python鍒欎互鍏剁畝媧佹槗鎳傜殑璇娉曞拰涓板瘜鐨勫簱璧勬簮鍦ㄨ偂紲ㄨ蔣浠跺紑鍙戜腑鍗犳嵁涓甯涔嬪湴銆侾ython鐨勮剼鏈鍨嬬壒鎬т嬌寰楀紑鍙戣呭彲浠ュ揩閫熷湴緙栧啓鍜屾祴璇曚唬鐮侊紝閫傚悎榪涜屽師鍨嬪紑鍙戝拰蹇閫熻凱浠c傛ゅ栵紝Python鐨勯噾鋙嶅垎鏋愬簱濡俻andas鍜宯umpy絳夛紝涓哄勭悊鍜屽垎鏋愯偂紲ㄦ暟鎹鎻愪緵浜嗗己澶х殑鏀鎸併傚緢澶氭暟鎹鍒嗘瀽甯堝拰鎶曡祫鑰呭枩嬈㈢敤Python鏉ョ紪鍐欒嚜瀹氫箟鐨勪氦鏄撶瓥鐣ュ拰鍙瑙嗗寲鍒嗘瀽鎶ュ憡銆
Java鍒欎互鍏惰法騫沖彴鐨勭壒鎬у彈鍒拌偂紲ㄨ蔣浠跺紑鍙戣呯殑闈掔潗銆侸ava緙栧啓鐨勭▼搴忓彲浠ュ湪浠諱綍鏀鎸丣ava鉶氭嫙鏈虹殑騫沖彴涓婅繍琛岋紝榪欏ぇ澶у炲姞浜嗚蔣浠剁殑鍙鐢ㄦу拰鍙緇存姢鎬с傚悓鏃訛紝Java鐨勪紒涓氱駭鐗規у拰涓板瘜鐨刉eb寮鍙戞嗘灦涔熶嬌鍏墮潪甯擱傚悎鐢ㄤ簬寮鍙戝ぇ鍨嬭偂紲ㄨ蔣浠剁郴緇熷拰Web浜ゆ槗騫沖彴銆備緥濡傦紝涓浜涙彁渚涘湪綰誇氦鏄撴湇鍔$殑鑲$エ杞浠訛紝鍙鑳戒細閫夋嫨Java浣滀負涓昏佸紑鍙戣璦銆
緇間笂鎵榪幫紝鑲$エ杞浠剁殑寮鍙戣璦閫夋嫨鍙栧喅浜庤蔣浠剁殑鍏蜂綋闇奼傚拰鐩鏍囥備笉鍚岀殑緙栫▼璇璦鍚勬湁浼樺娍錛屽紑鍙戣呴渶瑕佹牴鎹瀹為檯鎯呭喌榪涜屾潈琛″拰閫夋嫨銆
E. 股票軟體用什麼編程
股票軟體主要使用編程語言和開發工具進行編程,常用的編程語言包括Java、C++、Python等。
股票軟體的開發涉及的編程語言有多種。Java因其跨平台的特性,被廣泛用於開發股票軟體。C++以其高效和靈活的特點,也在股票軟體的編程中佔有一席之地。此外,Python因其在數據分析與演算法交易方面的優勢,也被越來越多的股票軟體開發者所採用。
接下來,詳細解釋這幾種編程語言在股票軟體編程中的應用:
1. Java:Java作為一種跨平台編程語言,可以在不同的操作系統上運行,具有很好的兼容性和穩定性。股票軟體中的交易系統、行情分析等功能,通過Java編程可以實現跨平台的無縫對接。
2. C++:C++是一種面向對象的編程語言,具有高效、靈活的特點。在股票軟體中,一些對執行速度要求較高的實時交易系統或高頻交易系統,常常使用C++進行開發。
3. Python:Python在數據分析、機器學習、演算法交易等領域具有明顯優勢。股票軟體中涉及的大量數據處理、策略回測、自動化交易等功能,Python可以很好地滿足這些需求。同時,Python的代碼編寫效率高,使得開發過程更加高效。
這些編程語言通常會結合一些開發工具來使用,如集成開發環境和各種軟體開發框架,以實現股票軟體的各項功能。
總之,股票軟體的編程主要依賴於Java、C++、Python等編程語言以及相關的開發工具。開發者會根據軟體的具體需求和功能特點選擇合適的編程語言和工具進行開發。
F. 股票軟體怎麼開發
股票軟體開發的方法如下:
一、股票軟體開發定製分析
然後把它用軟體工程開發語言(形式功能規約,軟體需求分析就是回答做什麼的問題。一個對用戶的需求進行去粗取精、去偽存真、正確理解。即需求規格說明書)表達進去的過程。本階段的基本任務是和用戶一起確定要解決的問題,建立軟體的邏輯模型,編寫需求規格說明書文檔並最終得到用戶的認可。需求分析的主要方法有結構化分析方法、數據流程圖和數據字典等方法。本階段的工作是根據需求說明書的要求,設計建立相應的軟體系統的體系結構,並將整個系統分解成若干個子系統或模塊,定義子系統或模塊間的介面關系,對各子系統進行具體設計定義,編寫軟體概要設計和詳細設計說明書,資料庫或數據結構設計說明書,組裝測試計劃。
二、股票軟體開發設計
也可以是可組合、可分解和可更換的功能單元。模塊,股票軟體設計可以分為概要設計和詳細設計兩個階段。實際上軟體設計的主要任務就是將軟體分解成模塊是指能實現某個功能的數據和程序說明、可執行程序的順序單元。可以是一個函數、過程、子程序、一段帶有順序說明的獨立的順序和數據。然後進行模塊設計。概要設計就是結構設計,其主要目標就是給出軟體的模塊結構,用軟體結構圖表示。詳細設計的首要任務就是設計模塊的順序流程、演算法和數據結構,主要任務就是設計資料庫,常用方法還是結構化順序設計方法。
三、股票軟體開發定製編碼
即寫成以某一順序設計語言表示的「源程序清單」充沛了解軟體開發語言、工具的特性和編程風格,軟體編碼是指把軟體設計轉換成計算機可以接受的順序。有助於開發工具的選擇以及保證軟體產品的開發質量。
四、股票軟體開發測試
關鍵在於理解測試方法。不同的測試方法有不同的測試用例設計方法。兩種常用的測試方法是白盒法測試對象是源程序,股票軟體測試的目的以較小的代價發現盡可能多的錯誤。要實現這個目標的關鍵在於設計一套出色的測試用例(測試數據和預期的輸出結果組成了測試用例)如何才幹設計出一套出色的測試用例。依據的順序內部的邏輯結構來發現軟體的編程錯誤、結構錯誤和數據錯誤。結構錯誤包括邏輯、數據流、初始化等錯誤。用例設計的關鍵是以較少的用例覆蓋盡可能多的內部順序邏輯結果。白盒法和黑盒法依據的軟體的功能或軟體行為描述,發現軟體的介面、功能和結構錯誤。其中介面錯誤包括內部、外部介面、資源管理、集成化以及系統錯誤。
五、股票軟體開發與維護
對軟體產品所進行的一些軟體工程的活動。即根據軟體運行的情況,維護是指在已完成對軟體的研製(分析、設計、編碼和測試)工作並交付使用以後。對軟體進行適當修改,以適應新的要求,以及糾正運行中發現的錯誤。編寫軟體問題演講、軟體修改演講。