手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)…

首先要做的就是学习如何获取数据、保存数据、读取数据。

1、数据的获取

数据的获取是不是要用到爬虫啊,可是我不会怎么办/p>

其实告诉大家一个简单的方法就是使用Python的tushare包,虽然从这个包中获取的数据可能并不完全满足我们的需要,但是对于做一些简单的分析已经足够了。

打开Anaconda Prompt,然后输入conda list看一看这个包有没有安装,如果没有安装,我们可以在这个界面输入pip install tushare直接安装这个包。

我们以获取“000001”(平安银行)为例:

因为我们后续内容还要用到NumPy包,所以首先导入Tushar包和NumPy。

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

有点遗憾的是,通过这种方法只能获取最近3年的数据,如果要是做简单的分析是足够了。接下来把数据保存为“csv”格式

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

解释一下参数的含义:

(1)首先是stock_data.csv,这个是文件名,因为我使用的是notebo,当我 们保存数据时,就直接保存到了home中,我可以直接调取,如果使用 ipython需要输入文件的地址,这一点要注意。

(2)第二个参数我们设置分隔delimiter=‘,’,(采用什么符号来分割列)默认情况下是空格来分割,一般我们常用英文逗号作为分隔符。

(3)第三个参数代表使用的列,注意列的索引是从0开始的哦,第四个参 数unpack=True表示我们允许分拆保存不同的列,比如我们单独把收盘价 赋值给c,成交量赋值给v,如果是False则不可以。

(4)最后一个参数是skiprows=1代表跳过头行,如果不设置的话,会出现错 误,说不能将第一行的字符串转为浮点数。

2、计算股票成交量加权平均价格

VWAP(成交量加权平均价格)是一个非常重要的经济学量。它代表着金融资产的“平均价格”,某个价格的成交量越高,该价格所占的权重也就越大,VWAP常用语算法交易。

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

我们是按照横向来计算加权平均值,如果去掉axis参数,则会报错,因为纵向有3个数据,而权重只有两个,所以会显示无法匹配。

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

一般returned参数并不常用。针对axis在numpy中的应用,后面内容中我会专门作出介绍~~

3、计算收盘价的算数平均值

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

5、收盘价最大值、最小值和中位数

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

我们也可以利用之前学过的map函数计算收益率大于0 的天数。

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

(2)计算对数收益率

因为对数收益率是相邻价格对数的差值。

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

7、日期分析

如果对于这只股票我们想知道,在这一周的交易日里,哪一天的平均收盘价最 高,哪一天的最低,应该怎么办们来分析一下:

首先要思考一个问题,就是我们的数据中的日期,如果单看日期我不知道这一天是星期几,不利于分析。如果有一种方法,能把这种日期转换成我们所熟悉的用数字代替,比如0(星期一)、1(星期二)等等就好了,其实是有的。

这时候我们就要定义一个转换函数:

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

我们可以看到dates转换成了整数,并且没有5和6,因为星期六和星期日不是交易日。

我们的目的就是查看,就是要查看一周5个交易日的平均收盘价,所以我们要创建一个含有5个元素的数组,并且把初始值设置为0。我们用这个数组来存储每个工作日的平均收盘价。

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

我们还可以计算那个工作日的平均收盘价最高,那个工作日最低。

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

读取最高价、收盘价和最低价数据

读取最高价、收盘价和最低价数据

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

根据前面ATR的计算公式,求出h-l,h-preclose, preclose-l,并个序列中的各个元素的最大值。什么意思呢个序列,先比较第一个元素,谁最大取谁,然后在比较第二个元素,依次类推。这一步要使用Python的maximum函数。

他和max的区别就是,max仅能取一个数组中的最大值。

手把手教你python实现量价形态选股知乎_【量化投资】如何使用python软件对一只股票进行分析(手把手教你详细操作)...

可看到平安银行最近20天的ATR为0.4139。

(5)如何使用指标

根据书中和网上的资料大概有以下几种用法:

一是计算首笔仓位规模

比如你想在1月10日看到平安银行的收盘价为13.04元,认为若能够向上突破13.5就是一个很好的买入点,假如手上有10万资金,那么你应该在股价突破13.5元时买入多少手呢/p>

在《海龟交易法则》中建议第一笔仓位应该是一个ATR的波动与总资金的1%的波动相对应,什么意思呢/p>

现在你手中有10万元钱,1%的波动就是1000元,截止到2018年1月10日,平安银行的20日ATR为0.414,应该买多少股呢000/0.414=2415.45,取整数就是2400股,也就是说你应该在股价突破13.5的时候立刻买入2400股,花费32400元。此时在你入市的同时,你应该为这个仓位设置好止损,书中介绍很多海龟采用2ATR作为止损点,什么意思呢是说当前的ATR为0.414,当股价突破13.5元建完仓后,如果股价跌破13.5-2*0.414=12.672元时就该平仓止损了。止损时如果不计算交易成本的话,亏损1987.2元,占仓位资金的6.13%,占总资金的2%左右,这就意味着,若你看错市场走势,那么连错5次,总损失也不过10%。

二是加仓并提高止损

如果在股价涨到13.5元买入后继续加仓的话,那么同样利用ATR进行加仓,《海龟交易法则》中建议每上涨0.5ATR就加仓一次,也就是说在股价突破13.707元、13.914元、14.121元时在分别买入2400股,直到用完10万元为止。与此同时每个新加的仓位都应该设置相应的新价位之下2ATR的地方。整个仓位管理的最精华处,就是移动止损的设置。

如果有条件可以读一下《仓位管理:让你活得更久》和《海龟交易法则》中关于如何使用ATR进行资金的管理相关内容。

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览209014 人正在系统学习中 相关资源:ExWinner成套报价软件

来源:weixin_39672296

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月1日
下一篇 2020年11月1日

相关推荐