028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

VNPY中基于Ta-lib的KDJ策略怎样实现-创新互联

本篇文章给大家分享的是有关VNPY中基于Ta-lib的KDJ策略怎样实现,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

站在用户的角度思考问题,与客户深入沟通,找到兴化网站设计与兴化网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名与空间、网络空间、企业邮箱。业务覆盖兴化地区。

VNPY自带演示策略中,没有kdj策略,作为一个国内常用策略,这里讲讲怎么实现。

首先,Ta-lib这个python库里面并没有提供kdj策略,估计主要因为这个策略主要在流行,不过ta-lib提供了类似的方法STOCH()。可以实现KD效果。

那么首先为class ArrayManager新增一个方法kdj,来输出KDJ值。我是直接修改ctaTemplate.py 文件,更合适方法是继承class ArrayManager。

上面是新增的kdj功能,首先是利用SHOCH计算出kd,在利用kd算出j,输出kdj三个指标。
SHOCH计算需要每条k线中的最高值,最低值,和结束值参数,作为list数列提供;这个直接使用ArraManger提供值;然后是fastK_period, slowk_period和slowd_period, 这个就是kdj设定中常见的N,M1,M2三个窗口参数, 通常设置是(9,3,3)。
然后是slowk_matype, slowd_matype就是平均算法类型,这里可以用SMA滑动平均或EMA指数平滑移动平均等。为了和文华一致,用了SMA。

#MA_Type: 0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3 (Default=SMA)

这个后来发现不是一回事,Ta-lib中的SMA中S是simple简单的意思,SMA是简单移动平均。和文华SMA不一样,文华SMA是指数加权移动平均线,这样的化用EWMA更合适。但是Ta-lib本身并不提供提供EWMA;按照下图发现默认权重为1; EMA或者较为合适,不过此时权重为2。
后来看着此文又不是一回事,以后有空填这个坑。
https://www.joinquant.com/post/7920
VNPY中基于Ta-lib的KDJ策略怎样实现
VNPY中基于Ta-lib的KDJ策略怎样实现
j值不提供直接只算,直接用kd值,用3*k-2*d算出j值。对了这些返回都是一堆kdj组list,就是可以画成一个线。如果是array是false就返回一个点的kdj值。


好了上面就是对 ArrayManager增加一个kdj方法,在下来就是继承CtaTemplate, 生成策略,这里基本就是
买入思想就是k或d小于某个阈值时候为超卖,当k大于d,就是描述里面K线上穿d线时候,开多单。反之k或d值大于阈值多超买,那么此时k小于d,开空单。。
如果持有多头,那么因为j更加敏感,用j值来做平仓指标. 如果持有多单,,如果j小于d,即j线下穿d线时候卖出多单,或者j值快速下降,下降幅度大于定好的jlimit。。
如果持有空头,同理,如果j大于d,或者j快速增大则平仓。
代码如下:

以上就是VNPY中基于Ta-lib的KDJ策略怎样实现,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联-成都网站建设公司行业资讯频道。


网页标题:VNPY中基于Ta-lib的KDJ策略怎样实现-创新互联
链接地址:http://www.tsicrk.com/article/dppsje.html

其他资讯

让你的专属顾问为你服务

2.2029s