import sys
sys.path.insert(0, "../../")
from pyecharts import online
online()
# 演示必要的准备代码,使用该库时不需重复此单元格命令
import xalpha as xa
import pandas as pd
波动和成长,标的的性质如何影响定投的成绩
zz500 = xa.indexinfo('0000905')
zz500b = xa.indexinfo('0000831')
# 采用中证500和500低贝进行研究
zz500.bcmkset(xa.cashinfo())
zz500b.bcmkset(xa.cashinfo())
zz500.algorithm_volatility(),zz500b.algorithm_volatility()
# 低波波动性低的也没那么明显
(0.31811907574774867, 0.29669632893344722)
zz500.total_annualized_returns(),zz500b.total_annualized_returns()
# 不过低波的收益率可是强多了
(0.12470000000000001, 0.1726)
auto = xa.policy.scheduled(zz500,1000,pd.date_range('2011-01-01','2015-01-01',freq='W-THU'))
autob = xa.policy.scheduled(zz500b,1000,pd.date_range('2011-01-01','2015-01-01',freq='W-THU'))
# 每周四定投1000元
zz500t = xa.trade(zz500,auto.status)
zz500bt = xa.trade(zz500b, autob.status)
zz500t.xirrrate('2015-06-01'),zz500bt.xirrrate('2015-06-01')
# 到牛市顶部时,年化收益率竟然差不多
(0.45607187160394663, 0.46458845644291197)
zz500t.dailyreport('2015-06-01')
基金名称 | 基金代码 | 当日净值 | 单位成本 | 持有份额 | 基金现值 | 基金总申购 | 历史最大占用 | 基金持有成本 | 基金分红与赎回 | 换手率 | 基金收益总额 | 投资收益率 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 中证500 | 0000905 | 10.627208 | 3.9089 | 53211.76 | 565492.42 | 208000.0 | 208000.0 | 208000.0 | 0.0 | 0.113566 | 357492.42 | 171.8714 |
zz500bt.dailyreport('2015-06-01')
基金名称 | 基金代码 | 当日净值 | 单位成本 | 持有份额 | 基金现值 | 基金总申购 | 历史最大占用 | 基金持有成本 | 基金分红与赎回 | 换手率 | 基金收益总额 | 投资收益率 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 500µÍ±´ | 0000831 | 14.630401 | 5.2911 | 39311.42 | 575141.83 | 208000.0 | 208000.0 | 208000.0 | 0.0 | 0.113566 | 367141.83 | 176.5105 |
由此可见,虽然低波的一次性投入对应的年化收益很高,但最终定投下来和普通500指数的收益差不多。。。。
# 还是换创业板暴力一发吧,让你们领略一下15年神创的风采
cyb = xa.indexinfo('1399006')
cyb.bcmkset(xa.cashinfo())
cyb.total_annualized_returns('2015-06-01'),cyb.algorithm_volatility('2015-06-01')
# 令人眼红的收益率
(0.30730000000000002, 0.30155185277351393)
autoc = xa.policy.scheduled(cyb,1000,pd.date_range('2011-01-01','2015-01-01',freq='W-THU'))
cybt = xa.trade(cyb,autoc.status)
cybt.dailyreport('2015-06-01')
# 就问你怕不怕,同样的投入现金流,收益绝对值接近翻倍
基金名称 | 基金代码 | 当日净值 | 单位成本 | 持有份额 | 基金现值 | 基金总申购 | 历史最大占用 | 基金持有成本 | 基金分红与赎回 | 换手率 | 基金收益总额 | 投资收益率 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 创业板指 | 1399006 | 3.821031 | 0.9779 | 212690.33 | 812696.24 | 208000.0 | 208000.0 | 208000.0 | 0.0 | 0.113566 | 604696.24 | 290.7193 |
cybt.xirrrate('2015-06-01') #60%多的年化
0.6452718352308852
# 不过如果不幸没有止盈,持有到现在
cybt.xirrrate()
0.07698746449319872
让我这次定投一个大蓝筹
sz50 = xa.indexinfo('0000016')
autod = xa.policy.scheduled(sz50,1000,pd.date_range('2011-01-01','2015-01-01',freq='W-THU'))
sz50t = xa.trade(sz50,autod.status)
sz50t.dailyreport('2015-06-01')
基金名称 | 基金代码 | 当日净值 | 单位成本 | 持有份额 | 基金现值 | 基金总申购 | 历史最大占用 | 基金持有成本 | 基金分红与赎回 | 换手率 | 基金收益总额 | 投资收益率 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 上证50 | 0000016 | 3.207919 | 1.6901 | 123070.13 | 394798.98 | 208000.0 | 208000.0 | 208000.0 | 0.0 | 0.113566 | 186798.98 | 89.8072 |
sz50t.xirrrate('2015-06-01')
# 不愧江湖诨号大烂臭,收益在15年的牛市中远小于中小盘
0.28189135734500326
sz50.bcmkset(xa.cashinfo(),start='2011-01-01')
sz50.algorithm_volatility('2015-06-01')
# 真点低波
0.2333094161336661
# 持有到现在,即使这几年大盘股反杀,依旧不如创业板
sz50t.xirrrate()
0.06558331152460622
autoe = xa.policy.scheduled_tune(zz500,600,
times=pd.date_range('2011-01-01','2015-01-01',freq='W-THU'),piece=[(3,5),(3.5,3),(4,2),(5.5,1)])
zz500t2=xa.trade(zz500,autoe.status)
zz500t2.v_tradevolume() # 每周的买入情况
zz500t2.v_tradecost(end='2015-06-01') # 定投对于成本的平滑
# 看似收益很高,但你真的能承受住开始定投后长达两年多的浮亏么,甚至很多至暗时刻,浮亏超过20%,能坚持下来么
zz500t2.dailyreport('2012-11-30') # 看一下至暗时刻的投资表现
基金名称 | 基金代码 | 当日净值 | 单位成本 | 持有份额 | 基金现值 | 基金总申购 | 历史最大占用 | 基金持有成本 | 基金分红与赎回 | 换手率 | 基金收益总额 | 投资收益率 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 中证500 | 0000905 | 2.853925 | 3.6405 | 31643.62 | 90308.51 | 115200.0 | 115200.0 | 115200.0 | 0.0 | 0.262968 | -24891.49 | -21.6072 |
zz500t2.dailyreport('2015-06-01') # 收益率略有提高
基金名称 | 基金代码 | 当日净值 | 单位成本 | 持有份额 | 基金现值 | 基金总申购 | 历史最大占用 | 基金持有成本 | 基金分红与赎回 | 换手率 | 基金收益总额 | 投资收益率 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 中证500 | 0000905 | 10.627208 | 3.6838 | 63684.82 | 676791.8 | 234600.0 | 234600.0 | 234600.0 | 0.0 | 0.113566 | 442191.8 | 188.4876 |
zz500t2.xirrrate('2015-06-01') # 年化也小幅提高,不过即使对投资变额如此过优化,收益提升幅度还如此小,似乎意义不是很大
0.49963825079451923
最后,通过改变 pd.data_range() 中 freq 的标签,比如 W-WED,或M,可以调整定投在周几定投,或是按月定投,这里就不大篇幅回测其表现对比了,结论就是:收益都差不多