查看原文
其他

ZVT —— 一个将股票玩于股掌的 Python 库

晓飞的李 管窥程序 2024-03-31

有趣的 python 库之旅 ——

一个小小的库,或许能避免重复造轮子,

一个不显眼的功能,也许能在关键时刻拯救我们,

一个出乎意料的方法,或许能激发更多创意灵感,

一个独特的技能,也许能成为我们的守护神……

46 


经过了漫长的 A 股低迷,现在终于能看到了希望,但面对机构和技术炒股者,大多数股民因为缺乏技术和数据只能依赖股票软件隔靴搔痒。

就算懂得一些技术,在寻求财经数据获取、处理,甚至是数据可视化时,也会为数据来源、数据的准确性、以及如何处理这些数据而痛苦不堪。

今天,带来一个轻松几招就能将A股、美股、港股一网打尽的神器 ——  ZVT

认识  ZVT

ZVT,一个开源的基于  Python  的财经数据解决方案,不仅提供方便快捷获取财务报表、股价、分红送股等数据的能力,还拥有数据处理和可视化的强大功能,特别适合财经数据分析师和股票市场的参与者使用。

ZVT 与众不同的地方在于其建立在插件化和组件化的设计理念上,这让它可以非常容易地进行扩展和定制,同时也拥抱了社区,鼓励更多开发者参与进来,共同完善和扩展其功能。

此外,与其他类似的工具比较,如 tushareZVT 对于数据的处理和展示更为直观和高效。

项目地址:https://github.com/zvtvz/zvt

安装

使用ZVT之前,我们需要进行安装。幸运的是,安装过程相当简单,使用  pip  就可以轻松完成:

pip install zvt

如果你使用的是国内源,可能会出现该库不存在的提示,只需要强制使用 pypi 源即可,命令如下:

pip install zvt -i https://pypi.org/simple

基本功能

数据获取

ZVT 提供了一个统一的方式来获取股票市场的数据,无论是股票列表、股票行情,还是复杂的财务数据,都可以通过简洁的  API  获得。

例如获取中国的股票列表:

from zvt.domain import *
Stock.record_data(provider="em")
df = Stock.query_data(provider="em", index='code')
print(df)

示例显示效果:

id entity_id timestamp entity_type exchange code name list_date end_date
code
000001 stock_sz_000001 stock_sz_000001 1991-04-03 stock sz 000001 平安银行 1991-04-03 None
000002 stock_sz_000002 stock_sz_000002 1991-01-29 stock sz 000002 万 科A 1991-01-29 None
000004 stock_sz_000004 stock_sz_000004 1990-12-01 stock sz 000004 国华网安 1990-12-01 None
000005 stock_sz_000005 stock_sz_000005 1990-12-10 stock sz 000005 世纪星源 1990-12-10 None
000006 stock_sz_000006 stock_sz_000006 1992-04-27 stock sz 000006 深振业A 1992-04-27 None
... ... ... ... ... ... ... ... ... ...
605507 stock_sh_605507 stock_sh_605507 2021-08-02 stock sh 605507 国邦医药 2021-08-02 None
605577 stock_sh_605577 stock_sh_605577 2021-08-24 stock sh 605577 龙版传媒 2021-08-24 None
605580 stock_sh_605580 stock_sh_605580 2021-08-19 stock sh 605580 恒盛能源 2021-08-19 None
605588 stock_sh_605588 stock_sh_605588 2021-08-12 stock sh 605588 冠石科技 2021-08-12 None
605589 stock_sh_605589 stock_sh_605589 2021-08-10 stock sh 605589 圣泉集团 2021-08-10 None

[4136 rows x 9 columns]

对于美股和港股,只需要将 Stock 换成 StockusStockhk 即可。

数据可视化

通过命令行输入 zvt 并运行,然后打开浏览器访问 http://127.0.0.1:8050/

如此,一个信息详尽的财经数据可视化系统就呈现在你的眼前。

ZVT界面

你可以在这个系统中看到股票的各种指标、因子,以及交易记账信息,对于策略分析和回测都提供了很好的支撑。

数据处理

一句话就能完成数据的分析处理?

ZVT 中,这不再是梦想。

以机器学习为例,只需要几行代码,你就可以完成数据的获取、持久化、增量更新、机器学习、预测和结果展示:

from zvt.domain import Stock, Stock1dHfqKdata
from zvt.ml import MaStockMLMachine

Stock.record_data(provider="em")
entity_ids = ["stock_sz_000001""stock_sh_601318"]
Stock1dHfqKdata.record_data(provider="em", entity_ids=entity_ids)
machine = MaStockMLMachine(entity_ids=["stock_sz_000001"], data_provider="em")
machine.train()
machine.predict()
machine.draw_result(entity_id="stock_sz_000001")

看一下预测效果:

预测效果

高级功能

ZVT 除了以上提到的基本功能之外,还支持多种高级功能,如命令行界面(CLI)、事件驱动的股票选择器和交易系统等。

编写策略,体验交易

当你开始对市场有所了解后,ZVT还可以帮你写出你自己的交易策略。

通过遵循其提供的标准,或者选择自由发挥,你可以让你的交易策略自动运行,并在其交互式的UI中观察表现。

例如,只需编写简单的 Python 代码,你就可以创建一个策略,当机构投资者大量增持某支股票时买入,当他们大规模减持时卖出。

ZVT 会根据你的策略模拟交易,并提供回溯测试的结果。

开箱即用的历史数据

你还担心从哪里下载历史数据做分析吗?

ZVT 提供了丰富的数据集,你可以从网盘或者谷歌云端硬盘下载全市场的历史数据,然后将它们解压到 ZVT 配置的数据路径下,就可以直接在 ZVT 上使用这些数据了。

了解更多高级用法,请参考项目文档:https://zvt.readthedocs.io/en/latest/

实践

掌握了 ZVT 的操作之后,挑战的时刻到了。你可以尝试编写自己的数据获取脚本,也可以尝试编写策略进行回测。

不妨动手实践,将学习到的知识用于一些真实的金融分析项目中,你会发现 ZVT 强大的生产力。

总结

ZVT 是一站式的财经数据解决方案,提供丰富的数据获取方式、直观的数据可视化,以及便捷的数据处理能力。

对于财经数据分析师、量化交易员以及任何对股票市场感兴趣的人来说,ZVT 都是值得信赖的助手。

未来,随着社区不断的发展和完善,ZVT 将成为连接用户和财经数据世界的桥梁,让财经数据分析不再是难题。

作者水平有限,文中难免存在一些疏漏或错误,欢迎反馈、指正,感谢支持!

回复 源码 获取文中代码。


你可能错过了这些:

Tqdm —— 一个拒绝无聊的 Python 库

Rich —— 一个让程序更高级的 Python 库

Pendulum —— 一个专业的 Python 库

Cocos2d —— 一个能实现梦想的 Python 库
Pygame —— 一个好玩的游戏 Python 库
Watchdog —— 一条忠诚的 Python 狗(库)
Faker —— 一个超实用的 Python 库
Newspaper3k —— 一个神奇的 Python 库
Path —— 原来还可以这么玩!
Pangu —— 一个美化中文排版的工具
CherryPy —— 一个极简的 Python 库
docopt —— 一个优雅 且必会的 Python 库

关注我👇,加★星标★,精彩不再错过
继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存