繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168财经网>人物频道>帖子

KDJ指标终于可以算对了,原因在于EMA的算法

作者/sdjfshd 2019-05-10 06:51 0 来源: FX168财经网人物频道

最近无聊,研究SMA/EMA/WMA如何用pandas实现,并与TA-Lib对比。
由于EMA的算法要用到上一期的EMA,一时用pandas搞不定,但是发现pandas有ewm这个窗口函数。所以用ewm实现了一次EMA,发现怎么跟TA-Lib的还是对应不上。pandas这么成熟的产品,并且ewm也存在不少时间了,如果有bug应当很快就修复才对。

由于国内基本没人用ewm这个函数,只好到StackOverflow上找了,居然还真找到了。

并且它还提供了代码演示如何用ewm得到与TA-Lib一样的结果。测试了一下,居然还真的是一模一样。

区别就是EMA的第一个数是如何取值的,有三种算法,TA-Lib中只实现了两种:

* TA_MA_CLASSIC:*    Use a simple MA of the first 'period'.*    This is the approach most widely documented.** TA_MA_METASTOCK:*    Use first price bar value as a seed*    from the begining of all the *ailable*    data.


即,经典版第一个数是用的前几个价格的平均值,而MetaStock版就是用的原价格。
所以开始找有什么办法设置TA_MA_METASTOCK,发现python版没有提供此接口。

然后我又在github python版翻看issues,发现有很多人提到了各种数据不对的问题,其实都是EMA等类似的问题。由于作者可能对底层的算法没有认真研究,所以这些issue拖着没有close

所以我向python版作者提交了一个issue,目前他已经添加了这个接口。

import talib as taprint ta.get_compatibility() # DEFAULT == 0ta.set_compatibility(1) # METASTOCK == 1print ta.get_compatibility()

有兴趣的朋友可以去下载编译测试了,希望JoinQuant也立即跟进。

分享到:
举报财经168客户端下载

全部回复

0/140

投稿 您想发表你的观点和看法?

更多人气分析师

  • 张亦巧

    人气2152文章4145粉丝45

    暂无个人简介信息

  • 梁孟梵

    人气2152文章3177粉丝39

    qq:2294906466 了解群指导添加微信mfmacd

  • 指导老师

    人气1856文章4423粉丝52

    暂无个人简介信息

  • 李冉晴

    人气2296文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 刘钥钥1

    人气2016文章3119粉丝34

    专业从事现货黄金、现货白银模似实盘操作分析指导

  • 张迎妤

    人气1896文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 金泰铬J

    人气2320文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...

  • 金算盘

    人气2696文章7761粉丝125

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 金帝财神

    人气4736文章8329粉丝118

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...