akquant
是一个开源的量化投资教程项目,下面是关于这个仓库的详细介绍:
1. 项目概述
AKQuant
主要讲述 PyBroker 量化投资框架的使用和相关案例介绍。用户可以通过访问 利用 PyBroker 进行量化投资 进行阅读学习。
2. 项目结构
项目的主要目录和文件结构如下:
akquant/
├── .gitignore
├── .pre-commit-config.yaml
├── README.md
├── main.py
├── mkdocs.yml
├── pyproject.toml
├── requirements.txt
├── docs/
│ ├── CNAME
│ ├── article.md
│ ├── contributing.md
│ ├── data-source.md
│ ├── fin-data.md
│ ├── img/
│ ├── index.md
│ ├── installation.md
│ ├── javascripts/
│ ├── quant-resource.md
│ ├── quickstart.md
├── .github/
│ ├── workflows/
.gitignore
:用于指定在使用git
进行版本控制时,哪些文件或目录应该被忽略,不被提交到版本库中。.pre-commit-config.yaml
:pre-commit
工具的配置文件,用于在提交代码前自动运行一系列代码检查和格式化工具,如ruff
等。README.md
:项目的说明文档,包含项目的基本信息、贡献方式、更新进度等内容。main.py
:Python 主程序文件,包含使用PyBroker
进行量化投资策略回测的示例代码。mkdocs.yml
:MkDocs
的配置文件,用于生成项目文档网站。pyproject.toml
:Python 项目的元数据文件,通常用于配置项目的构建工具(如poetry
或flit
)。requirements.txt
:项目依赖的 Python 包列表,包含lib-pybroker
等主要包以及开发和文档相关的工具包。docs/
:文档目录,包含项目的详细文档,如安装说明、快速开始指南、贡献流程等。installation.md
:PyBroker 的安装说明文档,包括依赖库列表和源码安装方法。quickstart.md
:快速开始指南,包含策略代码示例和查看回测结果的方法。contributing.md
:贡献源代码的流程说明文档,指导开发者如何提交 Pull Request。
.github/
:GitHub 相关配置目录,通常包含 GitHub Actions 的工作流配置文件。
3. 主要功能和示例代码
3.1 PyBroker 安装
PyBroker 项目的源码托管在 GitHub 平台,可以通过以下命令下载源码并安装:
git clone https://github.com/edtechre/pybroker
cd pybroker
python setup.py install
3.2 策略代码示例
以下是一个简单的量化投资策略示例代码(位于 akquant/docs/quickstart.md
):
# 导入相关模块和类
import pybroker as pb
from pybroker import Strategy, StrategyConfig, ExecContext
from pybroker.ext.data import AKShare
# 查看当前版本
print(pb.__version__)
# 策略配置
config = StrategyConfig(initial_cash=500_000)
strategy = Strategy(
data_source=AKShare(),
start_date='20220101',
end_date='20230916',
config=config
)
# 定义规则
def buy_low(ctx: ExecContext):
# 如果当前已经持有仓位,则不再买入。
if ctx.long_pos():
return
# 如果当前的收盘价小于前一天的最低价,则下单买入。
if ctx.bars >= 2 and ctx.close[-1] < ctx.low[-2]:
# 计算买入的股票数量,该数量为当前资金的 25%。
ctx.buy_shares = ctx.calc_target_shares(0.25)
# 设置买入的限价,该限价为当前收盘价减去 0.01。
ctx.buy_limit_price = ctx.close[-1] - 0.01
# 设置持有仓位的时间,该时间为 3 个交易日。
ctx.hold_bars = 3
# 执行回测
strategy.add_execution(fn=buy_low, symbols=['000001', '600000'])
result = strategy.backtest()
# 查看结果
print(result.metrics_df) # 查看绩效
print(result.orders) # 查看订单
print(result.positions) # 查看持仓
print(result.portfolio) # 查看投资组合
print(result.trades) # 查看交易
4. 贡献代码
欢迎开发者在本项目贡献代码,贡献代码的方式有两种: 1. 在 GitHub 上提交 Pull Request 2. 在 GitHub 上提交 Issues
详情参考:https://akquant.akfamily.xyz/latest/contributing/
5. 更新进度
- 目前 PyBroker 的最新版本为:v1.1.33
- 本文档支持使用 Python 最新版本编辑