导航:首页 > 数据行情 > 如何开发个记录股票数据的软件

如何开发个记录股票数据的软件

发布时间:2025-02-19 16:06:02

A. 如何制作一个实时统计股票的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. 股票软件怎么开发

股票软件开发的方法如下:
一、股票软件开发定制分析
然后把它用软件工程开发语言(形式功能规约,软件需求分析就是回答做什么的问题。一个对用户的需求进行去粗取精、去伪存真、正确理解。即需求规格说明书)表达进去的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。
二、股票软件开发设计
也可以是可组合、可分解和可更换的功能单元。模块,股票软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的顺序单元。可以是一个函数、过程、子程序、一段带有顺序说明的独立的顺序和数据。然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的顺序流程、算法和数据结构,主要任务就是设计数据库,常用方法还是结构化顺序设计方法。
三、股票软件开发定制编码
即写成以某一顺序设计语言表示的“源程序清单”充沛了解软件开发语言、工具的特性和编程风格,软件编码是指把软件设计转换成计算机可以接受的顺序。有助于开发工具的选择以及保证软件产品的开发质量。
四、股票软件开发测试
关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,股票软件测试的目的以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据和预期的输出结果组成了测试用例)如何才干设计出一套出色的测试用例。依据的顺序内部的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部顺序逻辑结果。白盒法和黑盒法依据的软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部、外部接口、资源管理、集成化以及系统错误。
五、股票软件开发与维护
对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后。对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题演讲、软件修改演讲。

阅读全文

与如何开发个记录股票数据的软件相关的资料

热点内容
股票每股公积金和净资产的差别 浏览:722
股票能量指标怎么调出来 浏览:425
股票用现金买吗 浏览:597
好股票网生命线指标 浏览:116
手机上怎么看股票业绩 浏览:192
中国最大树脂厂股票号 浏览:152
推荐微信的股票软件 浏览:644
露振科技股票行情 浏览:745
小窗口的股票软件 浏览:896
重新开一个股票账户 浏览:123
国家队持仓股票信息 浏览:108
股票回购方式中不需要支付大量现金的是 浏览:630
恒康医药股票走势 浏览:1005
中国国债股票 浏览:443
股票很久没涨停 浏览:109
股票看盘软件教学视频直播 浏览:115
中国银联股票有吗 浏览:50
etf和普通股票一样买卖吗 浏览:24
搜于特股票今天走势 浏览:895
煤炭价格上涨对煤股票的影响 浏览:905