Skip to content

doongz/ChickenFarm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Chicken Farm

一家小小的养鸡场

env Python commit-activity Issues GitHub pull requests stars forks

FeaturesInstallationUsageTodoContributeCommunityLicense

非专业养鸡场:hatching_chick::hatched_chick::baby_chick:,统计购买和卖出操作,分析持仓和收益,爬取基金净值,使用各种定投算法回测分析,生成投资策略 :chart_with_upwards_trend::chart_with_upwards_trend::chart_with_upwards_trend:

Features

Installation

1、准备 Mysql 数据库

  1. 创建数据库 db_fund,使用sql文件整库建表
  2. 数据库 db_netvalue,无需建表
  3. 数据库 db_backtest,无需建表

2、填写配置表

配置文件(config.yaml) ,按照注释填写配置表。

3、配置环境变量

echo "export PYTHONPATH=$PYTHONPATH:<项目所在的父目录>" >> ~/.bash_profile
echo "export FARM_CONFIG_PATH=<配置文件(config.yaml)路径" >> ~/.bash_profile
source ~/.bash_profile

<> 替换成自己的配置

4、安装依赖包

python -m pip install -r requirements.txt

Important

每年都需要更新一下 chinesecalendar 包

pip install chinesecalendar

Usage

回测

将需要分析的基金添加至数据库(之后不用再添加),根据提示选择分类

python chick.py -add -c `code`

执行回测分析任务

python chick.py -job backtest_job
  1. 把基金的历史净值上传至 db_netvalue 数据库中
  2. 更新回测分析数据
  3. 导出回测分析图表

个人数据分析

执行个人数据分析任务

python chick.py -job base_job
  1. 更新本周的操作记录,
  2. 更新本周所有基金的持仓
  3. 统计并记录本周各个领域的持仓、收益
  4. 导出个人数据统计表
  5. 导出个人数据统计图

二、CLI

python chick.py

1、操作

command help
-add -c code 添加基金
-delete -c code 删除基金
-assets 从天天基金获取最新资产数据,更新至数据库中

2、个人数据分析

command help
-record 统计并记录各个领域以及总的投入、持仓、收益历史
-tables 导出基金最新数据总表、每个领域合计表、历史购买表、历史仓位表、历史收益表
-charts 绘制个人数据图表
-show 展示基金数据和图表

3、回测分析

command help
-netvalue 更新基金历史净值数据
-backtest 回测,并将回测数据上传
-plots 绘制各领域基金回测的小提琴图

三、个人数据统计

  • 各领域最新持仓图
  • 各领域持仓占比图
  • 各领域最新收益图
  • 各领域最新收益率图
  • 各领域最新持仓 & 收益图

personal_data_statistics

四、定投分析

下面实现的定投方法,仅为一种「最简单的思路」,抛砖引玉

选择一周中的固定一天(周一至周五),每周以固定的资金进行买入,在近半年、近一年、近三年的时间跨度进行定投回测,回测结果绘制出小提琴图。

  • 每一行,为一个基金的180天、365天、1095天区间的回测分析
  • 每一列,为一类基金的相同天数回测分析,可判断不同基金的定投收益
  • 子图为一周五天的小提琴图,中间横线为中位数,上、下端横线为极值,可分析选择周内的哪一天定投收益高
  • 小提琴图中宽的地方为概率密度大的地方,也就是多数样本分布的地方,也就是最有可能获得的收益率

注:定投的起点,也就是开始定投的日子对最终的收益有很大的影响。所以,并没有直接用距今天180天前的那一天开始算单一结果,而是取距今天180天前那一天的「附近区间的多个起点」,统计出多个样本来绘制「Violin Plot」。

例:白酒和半导体的一些基金回测分析

aip_backtest

aip_backtest

按照策略进行的实际定投情况,大多数买在了相对较低的点上

实际定投

Contribute

Contributions are always welcome! Please read the contribution guidelines.:relaxed:

Community

Chat

License

License

Copyright © 2022 Do Walle. All rights reserved.

About

非专业养🐥户,统计购买和卖出操作,分析持仓和收益,爬取基金净值,各种定投算法回测分析。

Topics

Resources

License

Stars

Watchers

Forks

Languages