量化分析
- 学习目标
- 金融量化简介
- 数据分析简介
- 常用库简介
1、学习目标
? 谈到金融量化分析,可能大多数人想到的肯定就是海量的股票数据,交叉错乱的股票数据图表,让从未接触过金融的人无法入手,就会想这种东西我怎么可能学的会。但是在我们有着扎实的Python编程基础就完全不需要担心这些东西了,我们只需要通过编程的方式编写出对应的策略就能通过计算机帮我们进行自动化交易。
? 从本文的标题当中就可以看到,我们的目标就是金融量化分析,在前面已经简单介绍过金融了,所以说我们就直接来看量化,量化这个词在当前这个时代已经越来越常见了,它主要就是可以通过一些策略获取一个投资的方案,而分析就是我们常说的数据分析了,数据分析也是与我们的生活息息相关,本文主要是针对金融方面的数据进行分析,但是如果你从事其他行业,这些技术完全适用。
2、金融量化简介
2.1、什么是金融量化
? 金融量化主要是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据当中选出能够带来超额收益的多种“大概率”事件以此来指定策略。主要就是以下几步:
1、发现的一种能够赚钱的规律
2、将规律分解成可操作的步骤(策略)
3、编写程序,让机器去执行这个策略
4、机器返回结果,或者说是让机器直接实现自动化交易
2.2、金融量化能干什么
? 相信大家都经常会使用百度、谷歌等之类的搜索引擎搜索我们想了解的问题,但是你要是直接去问它,我到底该买哪一支股票?什么股票可以挣钱?这样的问题会有答案吗,肯定是不会的,所以说金融量化的任务就是类似于这些搜索引擎的功能,只不过它只会通知你今天应该买什么,今天应该买什么。
1、可以帮你在几千只A股当中选择符合要求条件的股票
2、选择买、卖、平仓的时机
3、管理仓位风险
4、不会受到个人情绪影响
2.3、为什么将Python用于金融
? 其实在之前大多数金融投资都是投资者根据个人经验或者偏好来完成的,但是这样的方式会受到很多因素的影响。但是我们将大量的历史数据通过计算机强大的运算能力进行分析、测试,然后再进行投资,就可以利用历史规律,在其基础上发现概率优势,形成良好的投机基础。
? 量化投资目前主要是以R和Python为工具,早些年可能R语言占据了绝对的地位,但是随着Numpy、Pandas、Matplotlib、Scipy、Sckikiy-Learn等Python开源工具的发展,目前Python已经在这一方向大放异彩,加上它强大的调试能力以及工程能力,让我们分析的结果和需要执行的任务可以无缝结合,使得维护变得非常方便。
3、数据分析简介
3.1、数据分析是什么
? 对比互联网各个岗位的裁员程度可以发现,数据分析相关岗位正在不断的扩招,已经成为了这波逆流中的黑马,什么原因导致的数据分析人才如此紧缺?
? 因为数据分析是大势所趋,未来的发展空间会大有可为。随着5G网络即将商用,企业每天将会产生海量的数据,BAT日均数据更是达到了PB的级别,数据分析相关岗位才会存在着巨大的需求缺口。
? 长此以往,企业要用尽可能少的人才,来满足尽可能多岗位的诉求,可以这么说,数据分析将会是每个程序员个人能力最重要的补充,也是BAT这类大公司急招人才的必备技能。
? 但是一提数据分析,很多人就觉得无从下手,知识点零散总是抓不住重点,学习起来相当吃力。
? 在我们如今这个时代,相信大多数人都能明白数据的重要性,数据就是信息,而数据分析就是可以让我们发挥这些信息功能的重要手段。
3.2、数据分析能干什么
对于数据分析能干什么其实我们可以简单的举几个例子:
- 1、淘宝可以观察用户的购买记录、搜索记录以及人们在社交媒体上发布的内容选择商品推荐
- 2、股票可以根据相应的数据选择买进卖出
- 3、今日头条可以将数据分析应用到新闻推送排行算法当中
- 4、爱奇艺可以为用户提供个性化电影推荐服务
? 其实数据分析不仅可以完成像以上这样的推荐系统,在制药行业也可运用数据分析来预测什么样的化合物更有可能制成高效药物等。所以说数据分析绝对是未来所有公司不可或缺的岗位,目前社会上获取数据方式太多了,这么多的数据,只要我们拥有数据分析的技能,绝对可以应付任何岗位上的工作。
3.3、为什么利用Python进行数据分析
- 1、Python的代码语法简单易学
- 2、Python可以很容易的整合C、C++等语言的代码
- 3、Python有大量用于科学计算的库
- 4、Python不仅可以用于研究和原型构建,同时也适用于构建生产系统
4、常用库简介
Numpy
? NumPy是用于科学计算的一个开源Python扩充程序库,它为Python提供了高性能的数组与矩阵运算处理能力.NumPy为Python带来了真正的多维数组功能,并且提供了丰富的函数库处理这些数组。它将常用的数学函数都支持向量化运算,使得这些数学函数能够直接对数组进行操作,将本来需要在Python级别进行的循环,放到C语言的运算中,明显地提高了程序的运算速度。
Pandas
? Pandas使我们进行数据分析的一个主要工具。它所包含的数据结构和数据处理工具的设计使得Python中进行数据清洗和分析非常快捷。pandas一般也是和其他数值计算工具一起使用的,支持大部分Numpy语言风格的数组计算。pandas和numpy最大的区别就是pandas是用来处理表格型或者异质性数据的,而Numpy则刚好相反,它更适合处理同质型的数值类数组数据
matplotlib
? matplotlib是最流行的用于绘制数据图表的python库。它基本也是可视化这一区域的标杆,在许多情况下,它都是 一个可靠、健壮的可视化工具。对于一些标准的绘图工作,它比较容易理解,进行复杂的绘图还有自定义,它也很灵活。此外,它还与Numpy以及其提供的数据结构紧密集成。
Scipy
? Scipy是科学计算领域针对不同标准问题域的包集合。提供了强大的科学计算方法(矩阵分析、信号分析、数理分析等)
IPython和Juypyter notebook
? IPython是一个加强版的Python解释器,Juypyter notebook是一种基于Web的代码笔记本,最初也是源于IPython项目。
5、小结
? 本文主要带大家一块认识金融、量化投资、数据分析等多方面知识,从数据入手,结合金融行业的大量数据完成数据分析的一些常用操作,最终通过所学的所有知识完成一个简易量化系统。
金融行业简介
金融行业简介
? 虽然说我们主要的学习目标是金融量化与数据分析,但是在学习那些东西之前,我们先来看看什么是金融,以及金融行业的一些基本常识。
1、金融
1.1、什么是金融
? 金就是钱,融就是玩,说白了搞金融就是在玩钱。专业点来说就是对现有资源进行重新整合,实现价值和利润的等效流通。
? 搞金融其实是有一定赌的性质,但是它和赌博不一样,他对社会是有好处的,为什么国际禁止赌博而不禁止金融。因为金钱流通起来对我们的国家的发展是有好处的,有消费、有生产,国家的经济才能好。不然所有的钱都存在地窖里,都不用,没有流通,那国家的经济一定不景气。
? 比如现在有一个很有想法的创业者,但是他没有钱,一个亿万富翁投资给他500万,然后他拿这500万创业,那如果他的公司上市怎么样的,升值了,那这个亿万富翁的钱是不是也升值了。那对于这个创业者来说,他本来没钱,通过金融变有钱了。
1.2、金融工具
在金融市场中可交易的金融资产都可以称作金融工具。
- 股票
- 期货
- 黄金
- 外汇
- 基金
- .....
接下来主要就股票进行简单介绍
2、股票
股票是股份公司发给出资人的一种凭证,股票的持有者就是股份公司的股东。
作用:
- 出资证明、证明股东身份、对公司经营发表意见
- 公司分红、交易获利
2.1、股票分类
A股:人民币普通股票。它是由我国境内的公司发行,供境内机构、组织或者个人(不含台、港、澳投资者)以人民币认购和交易的普通股股票(T + 1,,涨跌幅10%)
B股:人民币特种股票。它是以人民币标明面值,以外币认购和买卖,在境内(上海、深圳)证券交易所上市交易的(T + 1,T + 3)
H股:注册地在内地、上市地在香港的外资股(T + 0,涨跌幅不设限制)
N股:美国纽约上市
S股:新加坡上市
2.2、股票市场构成
- 上市公司
- 投资者(包括机构投资者)
- 证监会、证券业协会、交易所
- 证券中介机构
- 交易所
- 上海证券交易所:只有一个主板(沪指)
- 深圳证券交易所:
- 主板:大型成熟企业(深成指)
- 中小板:经营规模较小
- 创业板:尚处于成长期的创业企业
2.3、影响股价的因素
- 公司自身因素:股票自身价值是决定股价最基本的因素,而这主要取决于发行公司的经营业绩、资信水平以及连带而来的股息红利派发状况、发展前景、股票预期收益水平等。
- 行业因素:行业在国民经济中地位的变更,行业的发展前景和发展潜力,新兴行业引来的冲击等,以及上市公司在行业中所处的位置,经营业绩,经营状况,资金组合的改变及领导层人事变动等都会影响相关股票的价格。
- 市场因素:投资者的动向,大户的意向和操纵,公司间的合作或相互持股,信用交易和期货交易的增减,投机者的套利行为,公司的增资方式和增资额度等,均可能对股价形成较大影响。
- 心理因素:情绪波动,判断失误,盲目追随大户、狂抛抢购
- 经济因素:经济周期,国家的财政状况,金融环境,国际收支状况,行业经济地位的变化,国家汇率的调整等
- 政治因素
2.4、股票买卖(A股)
- 委托买卖股票
- 个人不能直接买卖,需要在券商开户,进行委托购买
- 股票交易日:周一到周五(非法定节假日和交易所休市日)
- 股票交易时间
- 9:15 - 9:25 开盘集合竞价时间
- 9:30 - 11:30 前市,连续竞价时间
- 13:00-15:00 后市,连续竞价时间
- 14:57-15:00 收盘集合竞价时间
- T + 1交易制度
- 当日买入的股票第二个交易日才可以卖出
当日卖出股票回来的钱,可以立即买新股票,但是要到第二天才能转出
2.5、专业名词
【多头】:预期股票会上涨的人。看涨
【空头】:预期股票价格会下跌的人。看跌
【多头市场】:也称为牛市。就是股票价格普遍上涨的市场。
【空头市场】:股价呈长期下降趋势的市场,空头市场中,股价的变动情况是大跌小涨。亦称熊市。
利多:是刺激股价上涨,对多头有利的因素和消息
利空:促使股价下跌,对空头有利的因素和消息。
【多头套牢】:指预测股价将上涨,买进后却一路下跌。
【空头套牢】:指预测股价将下跌,将所有股票放空卖出,但股价却一直上涨。
【ST股】:指境内公司连续两年亏损,被进行特别处理的股票。*ST股票是指境内上市公司连续三年亏损的股票。
2.6、涨停、跌停
1 昨天收盘时的价格作为0基准,规定一个A股市场的股票一天的涨跌幅度为±10%,规定S或者ST打头的股票一天涨跌幅限度为±5%。
2 新发行第一天上市的股票(在股票前面加N),涨跌幅不受限制,第二天恢复正常。
3 分红送股后复牌,复牌当日不受涨跌幅限制。
4 股改复牌后的股票,复牌当日不受涨跌幅限制。
2.7、股票代码
沪市股票代码是以6打头,深市股票代码是以0打头,创业板股票代码以3打头。
不知到代码可以用首字母查找。
2.8、各股的分时走势
最新:最新成交价。
开盘:开盘价,即当天开盘第一笔交易的价格
集合竞价:是指在每个交易日上午9:15—9:25,由投资者按照自己所能接受的心理价格自由进行买卖申报,电脑交易主机系统对全部有效委托进行一次集中撮合处理过程。在集合竞价时间内的有效委托报单未成交,则自动有效进入9:30开始的连续竞价。
集合定价由电脑交易处理系统对全部申报按照价格优先、时间优先的原则排序,并在此基础上,找出一个基准价格,使它同时能满足以下3个条件:
1.成交量最大。
? 2.高于基准价格的买入申报和低于基准价格的卖出申报全部满足(成交)。
? 3.与基准价格相同的买卖双方中有一方申报全部满足(成交)。
收盘:收盘时的价格。收盘价的产生:沪市为当日最后一笔交易前一分钟所有交易的成交量加权平均价。深市为前三分钟。
最高:当日最高交易价。
最低:当日最低交易价。
均价:当日的平均价格。
涨跌:以昨天收盘价为基准的涨跌幅度。
震幅:当日的最高价与最低价的幅度。
总手:此股票当日总共成交的总数。内盘外盘的总和。
金额:此股票当日总共成交的金额。
现手:现时的成交量。
涨停:今天最高可以涨到多少。
跌停:今天最低可以跌到多少。
量比:量比是衡量相对成交量的指标。其公式为:量比=现成交总手/(过去5日平均每分钟成交量×当日累计开市时间(分))。
换手:指在一定时间内市场中股票转手买卖的频率,是反映股票流通性强弱的指标之一。其公式为成交量/流通总股数×100%
市盈(动):动态市盈率,指在一个考察期(通常为12个月的时间)内,股票的价格和每股收益的比例。投资者通常利用该比例值估量某股票的投资价值,或者用该指标在不同公司的股票之间进行比较。
委比:是衡量某一时段内,买盘和卖盘强弱的技术指标。它的计算公式为: 委比=(委买手数-委卖手数)/(委买手数+委卖手数)×100%
颜色:绿跌红涨。
外盘:以委托卖出价成交的手数。代表买方的力量。
内盘:以委托买入价成交的手数。代表卖方的力量。
盘口:是在股市交易过程中,看盘观察交易动向的俗称。
S&B:S=SELL(卖出) ,或以绿色箭头表示;B=BUY(买入),或以红色箭头表示。
2.9、K线图
? K线图有直观、立体感强、携带信息量大的特点,能充分显示股价趋势的强弱、买卖双方力量平衡的变化,预测后市走向较准确,是各类传播媒介、电脑实时分析系统应用较多的技术分析手段。
3、金融分析
- 基本面分析
- 宏观经济面分析:国家的财政政策、货币政策等
- 行业分析
- 公司分析:财务数据、业绩报告等
- 技术面分析:各项技术指标
- K线
- MA(均线)
- KDJ(随机指标)
- MACD(指数平滑移动平均线)
- ......