内容同步公众号:python量化投资

【妹子问】:最近好多同事朋友都在投资股票基金,据说还挣了不少钱,股票我听说过,那到底什么是股票基金呢?

这么说吧,我们去投资股票和投资股票基金的目的都是希望在其资产价格提升的过程中挣到收益,而这其中的区别在于,买股票买的是特定一只股票,而基金则是投资一篮子股票。

【妹子问】:买一只股票和买一篮子股票有什么区别呢?

这么说吧,比如你是一所中学的校长,你今年的奖金是以学校高考的成绩作为依据。你有两种选择,一种是选择一名尖子生,以他个人的高考成绩作为学校今年高考的代表成绩,另一种是按照某种选拔规则,组建一个火箭班,以这个班的平均成绩来作为学校高考的代表成绩,如果你是校长,你怎么选?

【妹子说】:嗯,还是组建一个火箭班吧,如果只选一名尖子生,万一考砸了呢?

的确存在这种问题,选一个最优秀的学生吧,虽然他可能考出非常高的成绩,但是也有可能因为心里紧张、身体不适等原因发挥失常,考出很差的成绩,如果挑选一组优秀的学生组成一个火箭班,那么哪怕个别学生发挥失常,也不会对整个班的平均成绩带来根本影响,当然了,一个火箭班的平均成绩,肯定比最终全校第一名的分数要低了。

道理类似,这就是股票和基金的区别,买一只股票就好比说你只去看一个学生的成绩,这个股票可能连续涨停,表现优异,也有可能遭遇黑天鹅事件而导致股票大跌,甚至出现退市等极端情况,那样损失就大了。

而如果购买基金,也就是说购买他背后的一篮子股票,这样就可以避免单只股票出现极端情况而造成的损失,但是收益方面呢,他就对标的是一个总体的收益,就像班级的平均成绩,肯定不如最猛的一只股涨幅大了。

【妹子说】:嗯,我的小心脏承受能力没有那么强,眼光也没那么好,我觉得基金比较适合我。

对,对于一般普通投资者而言,基金确实是一个比较好的投资方式。

【妹子说】:那我还听说基金分为了主动基金和指数基金,他们有什么区别呢?

既然基金是由一篮子股票构成,那么挑选哪些股票就是基金的核心。

我们还是对比上面的例子吧,全校所有的学生,每一个学生就相当于一只股票,如果你按照自己的综合评价标准,选择了一批学生构成火箭班,那么这就类似于主动基金的选股过程,这意味着,不同的人来当校长,选择出来的火箭班里的学生大概率是有差别的。

而如果我们事先规定一个选拔制度,例如我们可以挑选全校模拟考试中总分前三十名的学生构成火箭班,那么这个过程就类似于指数基金的选股过程。而不论是谁当校长,只要按照同一个选拔制度,挑选出来的火箭班里的学生一定是一样的。

【妹子说】:哦,那我明白了,如果是校长按照主观意愿挑选学生,如果校长眼光独到、经验丰富,可能可以组建出一个非常好的火箭班,但是如果校长经验缺乏,可能组建的一个火箭班的成绩也不太好。但是如果按照事先设计的选拔制度的话,只要制度设计的好,校长按照制度来选拔,就不依赖校长的眼光了。

对,就是这么回事儿,主动基金的业绩非常依赖基金经理的选股和择时能力,主观因素比较大,而指数基金则和基金经理的能力无关,基金经理只要按照事先编制的选股规则进行选股配股就可以了。

【妹子说】:那我还是更倾向于指数基金,主动基金万一基金经理不靠谱、没经验,表现也会不好,有点不透明、不可控的感觉。

那我们就重点讨论一下指数基金吧,指数基金本质上就是买指数,指数的业绩好,指数基金的收益就高。

【妹子说】:那么,有哪些指数呢?

指数可以说数不胜数,我们先来看一个最最常见的指数:沪深300指数。

沪深300指数由上海和深圳证券市场中市值大、流动性好的300只股票组成,这个指数是从2005年4月8日正式发布的,挑选的基本都是大盘蓝筹股,综合反映中国A股市场上市股票价格的整体表现。

下图中就是沪深300的十大权重股,都是分布在各行各业我们耳熟能详的大公司、好公司。

【妹子说】沪深300指数,不是有300只成分股吗?那我想看看所有的300只股票到底有哪些?

别急,没问题的,这就可以用我们之前学习过的python工具来实现,tushare的数据平台就提供了指数成分股获取的python接口。

【代码片段】

import tushare as ts

import pandas as pd

ts.set_token('your token')

pro = ts.pro_api()

df = pro.index_weight(index_code='000300.sh',

start_date='20200801', end_date='20200828')

print(df)

【运行结果】

index_code con_code trade_date weight

0 000300.SH 000651.SZ 20200803 1.6275

1 000300.SH 000627.SZ 20200803 0.0689

2 000300.SH 000625.SZ 20200803 0.1291

3 000300.SH 000596.SZ 20200803 0.1433

4 000300.SH 000568.SZ 20200803 0.5077

.. ... ... ... ...

295 000300.SH 000708.SZ 20200803 0.0411

296 000300.SH 000703.SZ 20200803 0.1110

297 000300.SH 000671.SZ 20200803 0.0677

298 000300.SH 000661.SZ 20200803 0.8291

299 000300.SH 000656.SZ 20200803 0.1124

这段代码中,我们需要说明几点:

目前升级后的tushare平台,接口更多也更加规范好用,不过他的很多接口都需要一定的积分才能使用,用户需要注册一个token码,并在对应账户中的累积积分,ts.set_token('your token')这句代码就是完成token码在程序中的注册工作。

如果大家积分不够也没有关系,我们也会准备csv格式的本地数据供大家下载练习。

我们通过tushare平台的数据接口index_weight可以获取各类指数的成分股和对应的权重,index_code参数对应的就是指数的代码。不过这个是月度数据,因此需要我们利用start_date和end_date两个参数指定一个月度的时间范围,这里我们指定的是2020年8月。

函数的返回值是一个dataframe类型数据,一共有300行数据,每一行数据都代表了其中的一只成分股信息,其中index_code对应的是指数代码,这里就是我们要研究的沪深300指数代码000300.sh,con_code就是各只股票的代码,trade_date就是表示2020年8月3日的成分股情况,而weight则是该股票在指数当中所占的权重。

【妹子说】但是我看了下,这里并没有按照成分股权重从大到小的顺序进行排列呀?

这个简单,我们简单的处理一下就可以了,可以按照权重从大到小的顺序把这个dataframe重新排列一下就行了,我们还是只看最开始的前十行数据。

【代码片段】

import tushare as ts

import pandas as pd

ts.set_token('your token')

pro = ts.pro_api()

df = pro.index_weight(index_code='000300.sh',

start_date='20200801', end_date='20200828')

df = df.sort_values(by='weight', ascending=False)

print(df[:10])

【运行结果】

index_code con_code trade_date weight

236 000300.SH 600519.SH 20200803 4.9448

168 000300.SH 601318.SH 20200803 4.8853

286 000300.SH 000858.SZ 20200803 2.4929

271 000300.SH 600036.SH 20200803 2.1298

60 000300.SH 000333.SZ 20200803 2.0954

249 000300.SH 600276.SH 20200803 2.0426

0 000300.SH 000651.SZ 20200803 1.6275

209 000300.SH 600030.SH 20200803 1.5284

104 000300.SH 002475.SZ 20200803 1.4645

129 000300.SH 601888.SH 20200803 1.3737

600519.sh就是贵州茅台的代码,可以看得出,他是沪深300的第一权重股。

【妹子问】如果有些同学没有tushare的积分,使用不了这个接口怎么办呢?

好,我们也准备一个csv格式的数据源,供大家使用,这个csv格式的文件名为:000300_con.csv,我把他放在我自己电脑的D:\data路径下,用excel打开该文件如图所示:

在这个文件中,我们实际上关注的属性只有两个,一个是股票代码con_code,另一个是权重weight,那么我们在程序中会针对性的进行处理:

【代码片段】

import pandas as pd

df = pd.read_csv('d:\\data\\000300_con.csv', index_col=2)

df = df.sort_values(by='weight', ascending=False)

df = df['weight']

print(df[:10])

【运行结果】

con_code

600519.SH 4.9448

601318.SH 4.8853

000858.SZ 2.4929

600036.SH 2.1298

000333.SZ 2.0954

600276.SH 2.0426

000651.SZ 1.6275

600030.SH 1.5284

002475.SZ 1.4645

601888.SH 1.3737

Name: weight, dtype: float64

这段代码相比于前面又做了一些改进,首先我们利用read_csv函数读取了存放在D:\data路径下的文件000300_con.csv,由于股票代码是各只股票的唯一索引,因此我们在读取csv数据的过程中,顺手设置第2列属性(从0开始计算)con_code为返回值的索引列。

同样的,我们按照权重从大到小的顺序进行了排列,并且最终我们只保留了weight这一个属性。

【妹子说】嗯,指数基金以及指数成分股的概念我明白了,也学会了如何利用python获取和处理指数成分股数据。

大家也可以通过这一小节讲解的方法进行实践,我们已将沪深300的成分股文件(000300_con.csv)以及作为扩展练习的上证50的成分股文件(000016_con.csv)上传至网盘。

广告时间

CPA难吗?难!说不难肯定是假的,那么厚的教材看着就让人害怕。我也曾经历过学完这一章,忘了上一章的时候。但是久而久之我发现,CPA是有独特的学习套路、记忆方法和应试技巧的,可以轻松很多,但是在摸索的过程中我也走了很多弯路,浪费了很多宝贵的时间。 所以,我强烈安利底下这个BT学院的CPA高效提分课!讲课的老师都是超厉害的考霸,有全国CPA考试第一、第二,还有三个月均分80+过CPA的牛人,讲的都是CPA学习和应试技巧方面的干货,不管在什么学习阶段都听一听都很有用。 而且,还有免费的电子资料领,BT学院的考点通&框架还是公认的好用的,而且重点突出方便记忆。需要的朋友可以自取呀~

python分析基金_【教妹子买基金-01】用python分析基金成分股相关推荐

  1. python指数e_【教妹子买基金-02】用python看指数整体表现

    内容同步公众号:python量化投资 [妹子说]今天听小美跟我说,她最近这两年投资基金的收益还挺不错的,据说是挣了不少呀. 那这位小美同学有没有提一下她的具体收益情况? [妹子说]有的有的,她说这两年 ...

  2. Python灰帽子_黑客与逆向工程师的Python编程之道

    收藏自用 链接:Python灰帽子_黑客与逆向工程师的Python编程之道

  3. python 量化分析 入门_【合辑·收藏】Python量化从入门到精通

    原标题:[合辑·收藏]Python量化从入门到精通 引言 自2018年9月27日发第一篇推文以来,公众号"Python金融量化"专注于分享Python在金融量化领域的实战应用,坚持 ...

  4. python的精髓_教你玩转Python!一文总结Python入门到精髓的窍门

    (建议收藏) 很多人应该都有过这种经历,大量重复性工作:日报.周报.各种报,无穷无尽:不计其数的数据提取······琐碎繁杂的事务让工作的效率极低.如果可以一键完成就好了. 对这些问题来说,最高效的解 ...

  5. 如何在tomcat下应用部署日志_教妹子用IDEA创建web应用,部署到Tomcat服务器

    自从上一篇原创发表之后,粉丝反应热烈.主要分两派,一派关注技术的,觉得看了那么多的公众号文章,终于找到一篇能看懂的了,于是沾沾自喜.另一派是关注妹子的,感叹自己空有一身绝技,公司里却无妹子可教,大喊可 ...

  6. python怎么改成白底_教你用OpenCV 和 Python给证件照换底色(蓝底 -红底-白底)...

    ​在我们的生活中常常要用到各种底色要求的证件电子照,红底.蓝底.或者白底,而假如你手上只有一种底色的证件照,你又不想再去拍又不会PS怎么办?今天教你们用OpenCV和Python给你的证件照换底色.P ...

  7. python就业需要的技能_教你如何快速掌握Python就业技能

    -人生苦短,为什么要学Python? 简单易学 应用广泛 大厂青睐 (油管大神评选的2020最值得学就业语言-Python) 因为以上的种种理由,无论是国外还是国内, Python都荣登2020最值得 ...

  8. 如何用python开发一个贪吃蛇游戏_教你一步步利用python实现贪吃蛇游戏

    教你一步步利用python实现贪吃蛇游戏 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  教你一步步利用python实现贪吃蛇游戏.txt ] (友情提示:右键点 ...

  9. python画恐龙_教你用Python实现谷歌的小恐龙游戏

    谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个"小恐龙游戏". (如果想要直接进行游戏,可以在地址栏输入:chrome://dino ) 今天我们就来给大家演示下, ...

最新文章

  1. 数据绑定控件导出到excel
  2. [蓝桥小记]蓝桥杯参赛经历分享
  3. [独库骑行之我们路过沙漠]塔克拉玛干的边缘
  4. 大数据之HDFS应用开发(java API)
  5. 使用计算机绘制景物图像的两个主要步骤是,计算机11考试.doc
  6. c#hello world_C#| 打印消息/文本(用于打印Hello world的程序)
  7. linux 多个定时器,timer: 一个Linux下的超级精简的多重定时器:可实现成千上万个定时任务,定时精度可达纳秒级别,且同一时间点可添加不同的任务!适用于云后台服务和嵌入式等各种环境。...
  8. sql server 性能_SQL Server硬件性能调整
  9. python中循环结构break_Python编程10:跳出循环结构之break和continue
  10. GIS开发实习地图符号图式制作
  11. Slate轨道工具使用(一)—Track,Clip
  12. 教你如何免费将XPS转换为PDF格式
  13. ES8中对字符串补白的方式
  14. win10高性能模式
  15. Python中文全攻略 中文乱码 输出中文乱码
  16. [数据库] mysql
  17. 会声会影试用版到期了怎么办_corel 会声会影2018试用版如何卸载?
  18. 新型发明创造大赛计算机类,关于组织参加成都市第三十三届青少年科技创新大赛的通知...
  19. 产品读书《魔鬼经济学1:揭示隐藏在表象之下的真实世界》
  20. HDU 1574 RP问题(DP)

热门文章

  1. 高级 IO(非阻塞、多路复用、异步、存储映射、文件锁)
  2. 从枪械进化来聊聊大数据计算查询的两把高性能利刃
  3. 苹果天气怎么设置_苹果手机丢了Apple Watch密码怎么恢复出厂设置?
  4. 机电设备管理软件如何帮助企业破解生产物料管理难题?
  5. poi 合并重复单元格以及冻结行列
  6. Luminar 4 for mac(图像后期处理软件)
  7. 听霍强老师讲模式分类器设计的最小分类误差训练(MCE)
  8. 查看网页编码方式的通用方法
  9. 小猫统计目前支持的股票数据格式及融易汇下载地址
  10. 作业:模拟银行管理系统