Bootstrap

python数据分析及可视化(十六)金融量化(金融工具、金融分析、Tushare安装使用、双均线分析)

金融介绍

金融就是对现有资源进行重新整合之后,实现价值和利润的等效流通。
比如小明想把手里的资金投资给小李,而小李有好的增值项目但是缺少资金,如果小李的项目创业成功,小明的资金就会增长。

金融工具

在金融市场中可交易的金融资产,主要分为股票、期货、黄金、外汇、基金、债券等。投资本质上就为低价买入,高价卖出。

期货

现货,指现有的物品。比如发电厂需要大量的从煤炭市场去购置煤用来发电,预估煤炭的价钱会增长,发电厂就去大量囤积。一方面自己用来发电,一部分卖给对煤有需求的其他厂商,从而赚取差价。
期货,指规定期限的货物。是以某种大众产品如棉花、大豆、石油等及金融资产如股票、债券等为标的标准化可交易合约。因此,这个标的物可以是某种商品(例如黄金、原油、农产品),也可以是金融工具。
期货是建立在买卖双方对商品未来价值不同期望的基础上,双方对商品的期望值不一样,一方看涨,一方看跌,才能达成期货合约。
比如大量种植玉米,玉米在收割前是每吨2000元,农户预期玉米价钱会降低,在收割前卖给收购厂商,收购厂商对玉米的预期是价格上涨为每吨2050元,厂商就会与农户签订收购下期收购合约。如果收割后价钱上涨,收购厂商就赚取差价。收购厂商对商品的价值是看涨,进行囤货;农户对商品的价值是看跌,提前出货。

黄金

物以稀为贵,黄金稀少,从古至今都是硬通货,尤其是战争年代。就会有人投资黄金,赚取黄金上涨后的差价。早期的美元是跟黄金是挂钩的,一战后美国积累了大量的黄金,占全球存储量的70%, 为促进双方的交易就都以美元为交易的货币,然而黄金的存储量有限,当再需要大量美元的时候,不能再凭空印发美元;如果再发现金矿,黄金的数量增加了就可以再多印发美元。金矿的发现也不容易,就想另外一种方法,把美元和石油挂钩,好比有多少石油就印发多少美元,发动战争就优先占领油矿,石油多了就可以再进行美元的印发,购买其他国家的实体商品,收割其他国家的资产。

外汇

外汇,是货币行政当局(中央银行、货币管理机构、外汇平准基金及财政部)以银行存款、财政部库券、长短期政府证券等形式保有的在国际收支逆差时可以使用的债权。
汇指的是货币兑换的汇率,比如美元和人民币之间兑换的汇率。有人就会利用汇率之间的变化,赚取汇率差额产生的资金。汇率之间的波动很小,个人去购买赚取的差价很小,大都是贸易公司或者行政当局购买来抵消外汇波动对经济的影响,保持国内经济的平稳。美元的印制增多了,市场上流通的美元就会增多,对美元的汇率就会发生变化。

投资基金

投资基金是通过公开发售基金份额募集资本,然后投资于证券的机构。投资基金由基金管理人管理,基金托管人托管,以资产组合方式进行证券投资活动,为基金份额持有人的利益服务。
私自的募集资金是违法的,没有保障,个人拿到大量资金后难免会据为己有。
基金管理人会不断的调整投资的组合方式和投资比例,比如募集到的资金90%进行股票的投资,3%投资银行存款,2%购买债券,剩余的做其他的投资。股价的变动会影响基金的收益,管理人会不断的调整投资不同股票的比例和组合方式。

股票

股票是股份公司发给出资人的一种凭证,股票持有者就是股份公司的股东。投资股票赚取上涨的差额,比如8元一股购买,上涨为20一股,卖出就可以赚取差价。
股票作为出资证明、证明股东身份、股份占比比较大的股东可以对公司经营发表意见,也可以参与公司分红、交易获利。
上市/IPO:企业通过证券交易所公开向社会增发股票以筹募资金。
如果公司上市,别人购买股票,外部资本流入过多,造成内部股份的稀释,公司的决策就会受到外部人员的影响。如国内的华为公司未上市,支付宝的普及量已经到百姓的正常的生活,政府部门暂停蚂蚁金融的上市,避免外部资金过多的流入影响公司的决策和走向,国家对大型公司的上市是有要求的。
按照股票的分类,可以分为蓝筹股、成长股、ST股。蓝筹股是指公司股价的增长比较稳定,没有太大的波动,适合投资理念比较保守的人购买;成长股是未来有成长空间,发展潜力比较大的公司的股票;ST股指的是公司内部出现财政报告问题,公司的股价和资金不正常,有可能会被退市的公司。
按照上市地区进行分类:
A股:中国大陆上市,人民币认购买卖,北京、上海、深圳交易所;
B股:中国大陆上市,外币认购买卖;
H股:中国香港上市,交易规则不一样;
N股:美国纽约上市;
S股:新加坡上市
H股、N股、S股不受政府控制,波动比较大,增长下跌的幅度比较大;A股受政府控制的,不至于出现大幅度的波动。
股票市场的构成由,上市公司(募集资金);证监会(监视规范股票市场,避免恶意私自操作股价)、证券业协会(规范行业颁发的上岗职业资格证书)、交易所(买卖股票的场所);证券中介机构。
上海证券交易所,只有一个主板(沪指); 深圳证券交易所有主板:深成指(深成指500,有大型成熟企业)、中小板:经营规模小(中小版指)、创业板:尚处于成长期的创业企业(创业板指)
影响股票的因素:公司自身的因素(自己的经营、负面新闻等决定)、行业因素(相关行业的影响,如煤的上涨,成本增长导致利润变低)、市场因素(整个市场的影响,国内有政府的宏观调控使得影响变化不大)、政治因素(大前提,支持国家的政策;国家发展的规划和调整)、经济因素(经济、金融市场)、心理因素(投资者唯一能控制的,保持平常的心态)。
A股的买卖:
● 股票交易日:周一至周五(非法定节假日和交易所休市日),所以对金融和股票进行数据分析时,时间数据是不连续的。
● 交易时间
○ 9.15-9.25开盘集合竞价时间
○ 9.30-11.30前市,连续竞价时间
○ 13:00-15:00后市,连续竞价时间
○ 14:57-15:00深交所收盘集合竞价时间

金融分析

基本面分析

行业分析;公司分析(财务数据、业绩报告等,只能在这个层次面进行分析);宏观经济面分析(国家的财政政策、货币政策等)

技术面分析

K线

类似于箱线图。红色代表涨,绿色代表跌,在国外是反过来的。
在这里插入图片描述
红色箱线图中线的最顶端是当日股票的最高点,最底端是当日股票的最低点,箱子的最低处是开盘价,最高处是收盘价;绿色箱线图中箱子的最高处和最底处刚好相反。K线图分为日K、周K、月K、季K、年K,如百度的K线图,下方有区域缩放配置项,利用的是Echart组件。
在这里插入图片描述

MA(均线,moving,avg)

均线为算数移动平均线,MA5是以5天为一个间隔,比如5号的MA5值就为1-5号的值相加除以5;6号的MA5值为2-6号的值相加除以5;7号的为3-7号的平均值。
常见的是时间周期,MA5、10分别指的是5天、10天的均线为短期移动平均线,也称之为日均线指标;30-60天的为中期移动平均线,称之为季均线指标;120-240天为长期移动平均线,称之为年均线指标。

了解内容

MACD:指数平滑移动平均线;KDJ:随机指标;RSI;BOLL

金融量化投资

量化交易可以使交易效率比传统交易提高百倍。量化交易参考的数据可以是很多年前的数据。早期量化交易没有普及的时候,很多交易人员或者擅长投资的人通过大脑分析当前市场的情况和变化趋势,这就需要这类人员需要丰富的行业阅历,人脑记忆有限,不可能把所有的情况都分析出来,这时就需要做量化交易,根据以往的数据(交易情况),分析适合投资的时机,通过代码实现,进行批量的操作。 比如设置低于正常价格的20%就可以直接买入,高于20%直接卖出。

量化交易

金融量化分析主要是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据当中选出能够带来超额收益的多种“大概率”事件以此来指定策略。
主要就是以下几步:
● 灵光乍现,突然间的思维
● 细化策略,分批投入
● 策略转程序,制定号策略,转化成程序自动实现
● 检验策略结果
○ 回测,重新测试策略的效果
○ 模拟交易,投资策略在回测过程中能带来多少收益
● 实盘交易,在理想的情况下运行一下,效果好的话再进行实盘交易

量化交易的价值

● 避免主观情绪、人性弱点和认知偏差,选择更加客观,不受主观意识影响,如买了就想赶紧卖掉,对事物了解不够出现片面的偏差。
● 能同时包括多角度的观察和多层次的模型,要看公司近几年的财政报告收入等方面。
● 及时跟踪市场变化,不断发现新的统计模型,寻找交易机会
● 在决定投资策略后,能通过回测验证其效果。

Tushare

Tushare pro是一个python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程(背后其实为爬虫),能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。

Tushare安装

1.pip install tushare
2.访问https://pypi.org/project/tushare/   进行下载安装

学习文档:https://tushare.pro/ ,在文档中进行注册,使用个人主页的接口TOKEN ,在编写代码的时候进行数据的获取和调用。

Tushare使用

获取五粮液股票历史行情数据

对股票的数据进行分析,先建立接口,从学习文档中复制 接口TOKEN的数据,建立获取股票数据的链接,上海证券交易所后缀为.SH,深圳证券交易所后缀为.SZ,北京证券交易所的后缀为.BJ,香港证券交易所的后缀为.HK。
获取五粮液股票历史行情数据,不写start_date参数则为所有的日期。
在这里插入图片描述
不用再去写爬虫程序,直接利用财经数据接口包就可以获取数据,1月1-3日为假期没有开市,所以数据从2010年1月4日开始的。parse_dates表示将某一列设置为 时间类型,在此处trade_date除了作为索引,还要同时为时间类型。
在这里插入图片描述
只保留需要开盘,收盘,最高,最低值列。
在这里插入图片描述
输出该股票收盘比开盘上涨3%以上的日期。
在这里插入图片描述
输出该股票开盘比收盘跌幅2%以上的日期;输出该股票开盘比昨日收盘跌幅2%以上的日期。
在这里插入图片描述

每月1日买入,年底最后一个交易日卖出,计算收益

从2010年1月1日开始,每月第一个交易日买入1手(100股)股票,每年最后一个交易日卖出所有股票,计算到2021年年底,收益的情况。
在这里插入图片描述
对数据进行重新采样,调整采集频率为每月一次,计算卖股票的花费。
在这里插入图片描述
对数据进行重新采样,取每年的最后一天,计算股票的售价
在这里插入图片描述
计算收益值。

双均线分析

对于每一个交易日,都可以计算出前N天的移动平均值,然后把这些移动平均值连起来,成为一条线,就叫做N日移动平均线。移动平均线常用:5天,10天,30天,60天,120天和240天的指标,也即MA5,MA10等。
● 5天和10天的是短线操作的参照指标,称做日均线指标;
● 30天和60天的是中期均线指标,称做季均线指标;
● 120天和240天的是长期均线指标,称做年均线指标。

黄金交叉

短期均线上穿长期均线,为买入信号,对应的日期就要买入。一般比较MA5和MA30的值,图中的比较是MA10相对于MA5为长期。
在这里插入图片描述

死亡交叉

短期均线下穿长期均线,为卖出信号,对应的日期就要卖出。
在这里插入图片描述
找到两条线的交叉点来进行买入和卖出。

双均线分析练习

  1. 使用tushare包获取某股票的历史行情数据
  2. 使用tushare包计算该股票历史数据的5日均线和30日均线
  3. 使用matplotlib包可视化历史数据的收盘价和两条均线
  4. 分析输出所有金叉日期和死叉日期
  5. 假如我从2010年1月1日开始,初始资金为10W,金叉尽量买入,死叉全部卖出,则到今天为止。我的炒股收益率如何?

实现步骤如下:
在这里插入图片描述
获取到数据后 要及时进行保存,避免数据发生变化。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

;