点击上方卡片关注我
设置星标 学习更多技能
zvt是一个专为量化交易设计的Python开源库,主要面向中国A股市场的数据获取、分析和策略回测。该库由国内开发者创建,旨在为量化交易者提供一个统一的数据接口和分析框架。
使用pip进行安装:
pip install zvt安装完成后,可以通过以下代码验证是否安装成功:
import zvtprint(zvt.__version__)如果能够正常输出版本号,说明安装成功。
zvt提供了简洁的API来获取股票基本信息和行情数据。通过recorder机制,可以自动从多个数据源抓取并存储股票数据到本地数据库。数据获取后会自动保存到本地,避免重复请求,大大提高了数据处理效率。
from zvt.domain import Stock, Stock1dHfqKdatafrom zvt.api import get_kdata# 获取股票列表stocks = Stock.query_data(filters=[Stock.code == '000001'])print(stocks)# 获取K线数据df = get_kdata(entity_id='stock_sz_000001', start_timestamp='2023-01-01', end_timestamp='2023-12-31')print(df.head())zvt内置了丰富的技术指标计算功能,包括MACD、KDJ、RSI、布林带等常用指标,技术指标的计算结果会自动添加到数据框中,方便后续的策略开发和信号判断。
from zvt.factors.ma_factor import MaFactorfrom zvt.domain import Stock1dHfqKdata# 计算移动平均线factor = MaFactor(entity_ids=['stock_sz_000001'], start_timestamp='2023-01-01', end_timestamp='2023-12-31', windows=[5, 10, 20])# 获取计算结果df = factor.get_result_df()print(df[['ma5', 'ma10', 'ma20']].tail())zvt提供了强大的数据查询功能,支持多种条件筛选和排序操作。通过类似ORM的查询接口,可以轻松实现复杂的数据筛选需求,查询结果以DataFrame格式返回,可以直接用于后续的数据分析和可视化。
from zvt.domain import Stock# 查询市值大于100亿的股票stocks = Stock.query_data( filters=[Stock.market_cap > 10000000000], order=Stock.market_cap.desc(), limit=10)print(stocks[['code', 'name', 'market_cap']])zvt提供了灵活的因子框架,允许用户根据自己的交易逻辑开发自定义因子。通过继承Factor基类并实现compute方法,可以创建任意复杂的因子计算逻辑,自定义因子可以组合多个数据源和技术指标,实现更加精细化的选股策略。
from zvt.factors import Factorfrom zvt.domain import Stock1dHfqKdataclassCustomFactor(Factor):defcompute(self):# 获取K线数据 df = Stock1dHfqKdata.query_data( entity_ids=self.entity_ids, start_timestamp=self.start_timestamp, end_timestamp=self.end_timestamp )# 自定义计算逻辑 df['custom_signal'] = (df['close'] > df['open']) & (df['volume'] > df['volume'].rolling(5).mean())return df# 使用自定义因子factor = CustomFactor(entity_ids=['stock_sz_000001'], start_timestamp='2023-01-01')result = factor.get_result_df()zvt提供了完整的回测框架,支持多种交易策略的验证和绩效评估。回测系统可以模拟真实的交易环境,包括交易成本、滑点等因素。通过回测可以评估策略的收益率、最大回撤、夏普比率等关键指标,帮助交易者优化策略参数。
from zvt.trader import Traderfrom zvt.factors.ma_factor import MaFactor# 创建交易者实例trader = Trader(entity_ids=['stock_sz_000001'], start_timestamp='2023-01-01', end_timestamp='2023-12-31', initial_capital=100000)# 定义交易信号factor = MaFactor(entity_ids=trader.entity_ids, start_timestamp=trader.start_timestamp, windows=[5, 20])# 执行回测trader.run()# 查看回测结果print(trader.get_performance())zvt是一个功能强大且易于使用的Python量化交易库,为A股市场的量化分析提供了完整的解决方案。从数据获取、指标计算到策略回测,zvt都提供了简洁高效的API接口,统一的数据模型和灵活的因子系统,使得复杂的量化策略开发变得简单直观。
如果在编程工具充值使用上遇到麻烦,推荐一个牛逼的中转工具!一次性搞定 Codex 、Claude Code和 gemini,内容介绍和付费兑换详见文末阅读原文。


实测 4 个爆火 Skill,一句话生成画布/知识库/任务规划/自动发布
从海外公司注册到 Stripe 收款,跑通了出海收付款全流程(实操分享)
出海建站必备:告别AI味,这两个页面设计 Skills 太牛了!