基 金
至
天天基金客服热线:95021 / 4001818188
客服邮箱:
人工服务时间:工作日 7:30-21:30 双休日 9:00-21:30
郑重声明:
。天天基金网所载文章、数据仅供参考,使用前请核实,风险自负。
中国证监会上海监管局网址:
CopyRight 上海天天基金销售有限公司 2011-现在 沪ICP证:沪B2-20130026
注:净值增长率计算公式:【期末单位净值(复权) - 期初单位净值(复权)】/期初单位净值(复权)
区间收益率计算公式:【期末净值*【期末累计复权因子/期初累计复权因子】/期初净值)-1】*100%
区间收益率是指在即定的时间内,投资人持有基金
产品所获得的收益率,并假设投资人将所得分红均用于再投资(不考虑各项交易费用)。
:凤凰网所载全部数据均来自数据合作方,所载数据仅供参考,并不担保其准确性或完整性,也不构成对投资者的投资建议,我们将尽最大可能保证数据的专业品质。同时,我们也提醒投资者,在进行投资决策时请以基金公司公告为准,因使用凤凰网所载数据而导致的任何直接或间接损失,凤凰网不承担任何责任。
:凤凰网所载全部数据均来自数据合作方,所载数据仅供参考,并不担保其准确性或完整性,也不构成对投资者的投资建议,我们将尽最大可能保证数据的专业品质。同时,我们也提醒投资者,在进行投资决策时请以基金公司公告为准,因使用凤凰网所载数据而导致的任何直接或间接损失,凤凰网不承担任何责任。
请选择基金公司
您已选择的基金
浙江同花顺基金销售有限公司版权所有 浙ICP备11064708
公司地址:杭州市西湖区文二西路1号元茂大厦903室 公司总机:952555
基 金
天天基金客服热线:95021 / 4001818188
客服邮箱:
人工服务时间:工作日 7:30-21:30 双休日 9:00-21:30
郑重声明:
。天天基金网所载文章、数据仅供参考,使用前请核实,风险自负。
中国证监会上海监管局网址:
CopyRight 上海天天基金销售有限公司 2011-现在 沪ICP证:沪B2-20130026
开始之前,先补下几个关键定义:
方差组合模型(Mean-Variance Model),由于是马科维茨提出,所以也叫做马科维茨模型(Markowitz Model简称MM)。上世纪中期,投资者面临评估标的资产风险和收益两个核心问题。马科维茨开创性的提出了方差组合模型,即分别使用均值和方差来评估资产的收益和风险。奠定了现代金融学、投资学乃至财务管理学的理论基础。
但在那个年代,要计算资产的均值和方差,运算量还是很大的,好在今天,稍微简单了一些。
协方差(Covariance,COV),在概率论和统计学中,协方差用于衡量两个变量的总体误差。而在金融实践中,协方差常用于评估两个资产历史收益情况的相关性。在现代投资理论中,学者普遍认为应该分散化持有资产。如此,有时甚至在不减少期望收益的情况下,还能降低风险的暴露程度。
夏普比率(Sharpe Ratio),也可以称作夏普指数,是最常见的基金绩效评价标准化指标。诺贝尔经济学奖得主威廉·夏普(William Sharpe)从资产定价模型出发,推出了夏普比率。它代表了每增加一份风险,所对应增加的收益。
某天无意间看到一个叫做天天基金的网站,里面数据很多,于是就顺手把基金列表捣鼓了下来。地址是这个:
网页是这个样子的:
一共呢,可购基金是6800多个,然后我就一口气一条一条复制下来,放到了excel里面了。
哈哈,开个玩笑,总之我是拿到了一份原始文件,里面有基金列表,地址在这:
不过如果直接去请求这个网页,会出现错误:
但是没关系,直接在最上面那个链接页面的浏览器后台取下来也一样:
把原始文件存入一个txt文件(我已经存好了“基金列表-原始文件.txt”):
把这份文件简单处理下,就能得到基金列表了:
text里面两头有些干扰处理的字符,要去掉:
再把它转成列表:
提取数据[部分],放到表格里面:
df_fund_list显示出来,就是这样[一共6821只鸡]:
也可以把数据存到本地的excel里面:
打开就是这样:
但是实际呢,我只需要基金代码就行,因为拿着代码,就可以去进一步获得每只鸡的详细历史数据。
到这里,也算是完成了一大步,安全起见,先把基金代码存一下:
到这里,文件列表:
遍历鸡不是目的,目的是要拿到每只鸡的历史数据,咱也不贪心,过去三个月的就行,再多我的脑袋受不了,我的电脑也受不了。
还记得我们的基金代码列表吗,它叫做 fund_list :
要获取每只鸡的数据,我们要知道一个门道,就是一个网络地址,在这:
这个地址的内容:
给这个地址提供不同的参数,比如[代码、开始日期、结束日期、每页显示数量...],打开网页,我们就得到了预期结果,再把结果处理下,放到表格就可以分析了。
而我们要做的,就是每次更换基金代码,把6800多个鸡近期三个月的数据取下来,再把网页解析成表格,存上收工,准备下一步。
先看看怎么取数据:
上面之所以用了各 [try...except...],是因为有些基金刚刚成立,还没有三个月,解析数据自然会出错,处理方式就是忽略那些会出错的基金。跳过,下一个。
然后还用 [ time.sleep(0.2) ] 加了延时,太快的话可能被服务器当成恶意偷数据给封了,所以每取一次,停顿0.2s,一分钟大约300次。6800次大约30分钟,所以为了怕太难等,加了个进度提示:
另外,那一大坨代码也可以封装成一个函数,传入基金代码,返回基金数据:
上面的运行结果如下:
要把所有基金都过一遍,需要漫长的等待,之后,会得到两个东西:
分别来看看他们长什么样子:
all_fund_n,净值变化
all_fund_r,收益变化
总感觉看起来有些别扭,现在我把数据的名字换一下,再把第一列换成日期:
貌似它的日期是倒着来的,每天更新数据就在后面加,这不太科学,我要换回来:
再来看看效果[每一列为一个鸡,每一列为某天的数据]:
all_fund_nvalue
all_fund_return
但是这个数据准不准呢?不如随便选个鸡,画个图看看:
结果如下图:
在网上找找这个鸡,时间调到最近三个月,对比一下:
貌似差不多吧!只是时间起始不一样,所以左端有些差距。
我们也可以把这些数据先存好,不然一不留神把数据处理废了,又是半个小时的等待...
到这里,文件列表:
包含了从2020-08-25到2020-11-09,共6476只鸡的每天收益和净值。
终于来到了正题,计算夏普比率之前,我们需要先计算方差和均值,还需要一个无风险收益率。
反正只是为了学习,不用搞得太复杂,我就用1年期债券除以250个交易日,作为每天的无风险收益率了。
国家债券利率查看地址:
再看看我们之前拿到的所有基金过去三个月收益率数据,我们用此数据计算出他们的均值和方差,加到各自的末尾。
结果如下图:
夏普比例计算:[均值-无风险利率] / 方差的平方根
夏普比例代表了每份风险对应的收益,所以可以理解为越大越好,但是还要综合考虑收益[均值]。比如有些债鸡,波动几乎没有,方差超级小,夏普比率超级大,但是这不是我们想要的东西。
接下来,先按均值排序,收益高的在前;再按夏普比率排序,夏普比例大的在前,我们取出最棒的20只鸡来计算下方差矩阵。
不要说直接计算6476只鸡的协方差矩阵,那不是搞死我,就是要搞死我的电脑!
得到排序后的结果 :
换个方向,让横轴为日期,纵轴为基金代码,再取出前20个:
如下:
最右边显示了均值、方差和夏普比率:
看看排在前面的都是谁:
是时候计算协方差矩阵了,虽然这很复杂,但是我们有计算机啊,所有...
计算协方差要的数据,就是每只鸡的历史收益率:sp_ratio_top。
但是如果我没记错,他后面还跟了三列:['均值', '方差', '夏普比率'],先把他们删除。
再看看top_20:
末尾的3列木有了,很好!
20个鸡的协方差矩阵,就是一个20*20的矩阵,很简单啦:
没办法,屏幕不够大,显示不完整。
按协方差排排序,看看谁跟谁最不搭嘎:
他们的位置:
他们都是谁:
应该差不多了吧!
最后说句,这个跟投资没有关系,只是个人学习记录,别拿去照着买鸡,赔本了我不管的啊。发现错误要反馈哦,让其他朋友看到,毕竟我也不是金融狗也不是程序猿[没有其他意思!],不想误了大家!
原文:
本文由投之说网发布,不代表投之说网立场,版权归原作者所有,若侵犯了您的权利请与我们联系。