QuantStats 开源项目使用教程
1. 项目的目录结构及介绍
QuantStats 是一个用于量化投资分析的 Python 库,其 GitHub 仓库的目录结构如下:
quantstats/
├── quantstats/
│ ├── __init__.py
│ ├── plots.py
│ ├── reports.py
│ ├── stats.py
│ ├── utils.py
│ └── ...
├── tests/
│ ├── __init__.py
│ ├── test_plots.py
│ ├── test_reports.py
│ ├── test_stats.py
│ └── ...
├── .gitignore
├── LICENSE
├── README.md
├── requirements.txt
└── setup.py
目录结构介绍
quantstats/
: 主库文件夹,包含了所有的核心功能模块。__init__.py
: 初始化文件,使得quantstats
可以作为一个 Python 包导入。plots.py
: 包含用于可视化性能指标的函数。reports.py
: 包含用于生成度量报告的函数。stats.py
: 包含用于计算各种性能指标的函数。utils.py
: 包含一些辅助函数。
tests/
: 测试文件夹,包含了所有的测试脚本。test_plots.py
: 测试plots.py
中的函数。test_reports.py
: 测试reports.py
中的函数。test_stats.py
: 测试stats.py
中的函数。
.gitignore
: Git 忽略文件配置。LICENSE
: 项目许可证文件。README.md
: 项目说明文档。requirements.txt
: 项目依赖文件。setup.py
: 项目安装脚本。
2. 项目的启动文件介绍
QuantStats 项目的启动文件主要是 setup.py
,它负责项目的安装和分发。
setup.py
文件介绍
from setuptools import setup, find_packages
setup(
name='QuantStats',
version='0.0.47',
description='Portfolio analytics for quants',
author='Ran Aroussi',
author_email='ran@aroussi.com',
url='https://github.com/ranaroussi/quantstats',
license='Apache-2.0',
packages=find_packages(),
install_requires=[
'pandas',
'matplotlib',
'numpy',
'yfinance'
],
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
],
)
启动文件功能
name
: 项目名称。version
: 项目版本。description
: 项目描述。author
: 项目作者。author_email
: 作者邮箱。url
: 项目 GitHub 地址。license
: 项目许可证。packages
: 需要包含的包。install_requires
: 项目依赖。classifiers
: 项目分类信息。
3. 项目的配置文件介绍
QuantStats 项目没有明确的配置文件,但可以通过修改 quantstats/
目录下的各个模块文件来定制功能。
配置文件介绍
由于 QuantStats 没有传统的配置文件,用户可以通过以下方式进行配置:
- 修改
quantstats/stats.py
: 自定义性能指标的计算方法。 - 修改
quantstats/plots.py
: 自定义可视化图表的样式和内容。 - 修改
quantstats/reports.py
: 自定义报告的生成格式和内容。
示例
例如,如果你想修改夏普比率的计算方法,可以编辑 quantstats/stats.py
文件中的相关函数:
def sharpe(returns, rf=0., period=252, annual