Features • Installation • Usage • Todo • Contribute • Community • License
非专业养鸡场:hatching_chick::hatched_chick::baby_chick:,统计购买和卖出操作,分析持仓和收益,爬取基金净值,使用各种定投算法回测分析,生成投资策略 :chart_with_upwards_trend::chart_with_upwards_trend::chart_with_upwards_trend:
- 创建数据库 db_fund,使用sql文件整库建表
- 数据库 db_netvalue,无需建表
- 数据库 db_backtest,无需建表
将 配置文件(config.yaml) ,按照注释填写配置表。
echo "export PYTHONPATH=$PYTHONPATH:<项目所在的父目录>" >> ~/.bash_profile
echo "export FARM_CONFIG_PATH=<配置文件(config.yaml)路径" >> ~/.bash_profile
source ~/.bash_profile
将 <>
替换成自己的配置
python -m pip install -r requirements.txt
Important
每年都需要更新一下 chinesecalendar 包
pip install chinesecalendar
将需要分析的基金添加至数据库(之后不用再添加),根据提示选择分类
python chick.py -add -c `code`
执行回测分析任务
python chick.py -job backtest_job
- 把基金的历史净值上传至 db_netvalue 数据库中
- 更新回测分析数据
- 导出回测分析图表
执行个人数据分析任务
python chick.py -job base_job
- 更新本周的操作记录,
- 更新本周所有基金的持仓
- 统计并记录本周各个领域的持仓、收益
- 导出个人数据统计表
- 导出个人数据统计图
python chick.py
command | help |
---|---|
-add -c code |
添加基金 |
-delete -c code |
删除基金(回测) |
-assets | 从天天基金获取最新资产数据,更新至数据库中 |
command | help |
---|---|
-record | 统计并记录各个领域以及总的投入、持仓、收益历史 |
-tables | 导出基金最新数据总表、每个领域合计表、历史购买表、历史仓位表、历史收益表 |
-charts | 绘制个人数据图表 |
-show | 展示基金数据和图表 |
command | help |
---|---|
-netvalue | 更新基金历史净值数据 |
-backtest | 回测,并将回测数据上传 |
-plots | 绘制各领域基金回测的小提琴图 |
- 各领域最新持仓图
- 各领域持仓占比图
- 各领域最新收益图
- 各领域最新收益率图
- 各领域最新持仓 & 收益图
下面实现的定投方法,仅为一种「最简单的思路」,抛砖引玉
选择一周中的固定一天(周一至周五),每周以固定的资金进行买入,在近半年、近一年、近三年的时间跨度进行定投回测,回测结果绘制出小提琴图。
- 每一行,为一个基金的180天、365天、1095天区间的回测分析
- 每一列,为一类基金的相同天数回测分析,可判断不同基金的定投收益
- 子图为一周五天的小提琴图,中间横线为中位数,上、下端横线为极值,可分析选择周内的哪一天定投收益高
- 小提琴图中宽的地方为概率密度大的地方,也就是多数样本分布的地方,也就是最有可能获得的收益率
注:定投的起点,也就是开始定投的日子对最终的收益有很大的影响。所以,并没有直接用距今天180天前的那一天开始算单一结果,而是取距今天180天前那一天的「附近区间的多个起点」,统计出多个样本来绘制「Violin Plot」。
例:白酒和半导体的一些基金回测分析
按照策略进行的实际定投情况,大多数买在了相对较低的点上
Contributions are always welcome! Please read the contribution guidelines.:relaxed:
Copyright © 2022 Do Walle. All rights reserved.