知识科普|量化投资中,计算技术指标时常见的8个坑【邢不行|量化小讲堂系列49-实战篇】( 二 )


知识科普|量化投资中,计算技术指标时常见的8个坑【邢不行|量化小讲堂系列49-实战篇】
文章图片

之前讲了股票 , 接下来讲讲数字货币 。
首先是不要在不同的交易所之间比较技术指标 。
数字货币的交易所有几千家 。 交易所之间的买卖交易是互相独立的 , 因此它们的交易数据也是各自独立存在而不相干的 。
例如 , 以下两幅图是bitfinex交易所和okex交易所BTC/USDT交易对的K线数据对比 。
知识科普|量化投资中,计算技术指标时常见的8个坑【邢不行|量化小讲堂系列49-实战篇】
文章图片

bitfinex交易所
知识科普|量化投资中,计算技术指标时常见的8个坑【邢不行|量化小讲堂系列49-实战篇】
文章图片

okex交易所
这两幅图对应的时间段完全相同 , 仔细观察会发现 , 两者价格走势接近 , 但不是完全一样的 。 所以基于此算出来的技术指标肯定也不会完全一样 。
所以 , 我们在计算指标的时候 , 千万不要自己的数据是来自一家交易所的 , 但是却对照着另外一家交易所的行情数据去对比计算出的技术指标 , 这肯定是不一样的 。
知识科普|量化投资中,计算技术指标时常见的8个坑【邢不行|量化小讲堂系列49-实战篇】
文章图片

数字货币是7*24小时交易 , 不同地区的交易所会显示不同的时区 。 那此时我们就要特别注意 , 我们自己数据的时区和交易所行情数据显示的时区是否一致 。
比如币安交易所 , 它的主流用户在中国 , 所以网页上显示的数据默认是就是北京时间 。 但是如果你使用接口去抓取币安的K线数据 , 它使用的却是UTC时间 , 也就是英国的格林威治时间 。
那么此时当你计算技术指标的时候 , 使用的是UTC时间 , 很明显就会和交易所页面上显示的UTC+8的指标数据对不上了 。
此时的应对方法就是修改交易所页面展示数据的时区 , 一般交易所都提供这个功能 。 下图是在bitfinex交易所修改时区的方式 , 右下角点击UTC时间 , 就会弹出选择时区的框框 。
知识科普|量化投资中,计算技术指标时常见的8个坑【邢不行|量化小讲堂系列49-实战篇】
文章图片

知识科普|量化投资中,计算技术指标时常见的8个坑【邢不行|量化小讲堂系列49-实战篇】
文章图片

数字货币市场中有无数的“垃圾币” , 这些币的成交量很低 , 经常会在1个小时之内一笔交易都没有 。 那么面对这样的一个小时 , 如何来画这一根K线呢?
有的交易所会直接略去这一根K线 , 把这个时间段给删了 。 而有的交易所是根据前一根K线的收盘价作为这根缺失K线的开高低收价 , 同时成交量设置为0来补全这根K线数据 。
例如下图中的K线 , 大家看到一些横线 , 就是代表这根K线的时间内 , 没有发生一笔交易 。
知识科普|量化投资中,计算技术指标时常见的8个坑【邢不行|量化小讲堂系列49-实战篇】
文章图片

那么对于没有交易的K线数据 , 我们要确保 , 我们数据中的处理方式和交易所是一样的 , 不然计算得到的技术指标就会不一致 。
知识科普|量化投资中,计算技术指标时常见的8个坑【邢不行|量化小讲堂系列49-实战篇】
文章图片

大部分的技术指标都是源于国外 , 在翻译的过程中难免有些不准确 , 还有可能夹带着主观思想 。 因此经常会发现 , 同一名称的技术指标 , 在不同的地方 , 采用的是不同计算方法 。
比如TA-lib库计算的ATR指标和国内主流行情软件中显示的指标就是不一样的 。 因为他们计算方法不一样 。
国内行情软件一般是取TR(真实波幅)的简单平均 , 而TA-lib则是采取类似EMA平均一样的方法求TR的平均值 。
通达信行情软件中计算ATR的公式如下图:
知识科普|量化投资中,计算技术指标时常见的8个坑【邢不行|量化小讲堂系列49-实战篇】
文章图片

那TA-lib库计算ATR的公式是什么样的呢?通过深挖TA-lib库的底层代码发现这么一个注释:
知识科普|量化投资中,计算技术指标时常见的8个坑【邢不行|量化小讲堂系列49-实战篇】
文章图片

talib.ATR的作者Wilder采用了移动平均的概念来使每一个新的ATR都包含前一个ATR的信息:ATR(t)=(ATR(t-1)*(Period-1)+TR(t))/Period , 所以不是简单的算术平均 。
这里提到的TA-lib库 , 在我们之前的量化小讲堂系列文章中有提到过 。 简单来说就是一个技术分析库 , 里面包含了大部分主流的技术指标 , 让使用者不用再重复造轮子 。 具体可参考之前的文章:
1)不用再自己写技术指标了丨Ta-lib视频教程
2) 建议收藏丨Windows下安装TA-Lib终极教程
还有的技术指标长得很像 , 而且计算思路也类似 , 比如刚刚提到的MA和EMA 。 MA是简单移动平均线 , 是根据最近n天的收盘价求算数平均值得到;而EMA看起来和MA很像 , 英文名字一不小心就看错 , 它是指数移动平均值 , 相当于是一个加权平均值 , 但是它的加权方式很特别 , 感兴趣的可以自己搜索下 , 或者加我微信交流 。


推荐阅读