欢迎光临散文网 会员登陆 & 注册

以平均K线图(Heikin-Ashi)算法为例教你写FMZ扩展指标库

2023-06-26 10:21 作者:擅长学习的猫  | 我要投稿

编写趋势策略的开发者经常和作者探讨一些指标算法,常用的指标都在talib等指标库中可以找到。但是对于一些比较冷门且实用的算法、指标就很难找到现成的。想自己动手实现又没有设计思路、设计经验,感觉无从下手。


那么本篇作者就带你通过编写设计一个简单的算法:平均K线图(Heikin-Ashi)来学习如何“手搓”算法函数。


平均K线图(Heikin-Ashi)算法

在这里我们将所要计算的平均K线图的开盘价、最高价、最低价、收盘价简称为:avgOpen、avgHigh、avgLow、avgClose。作为参数的K线数据中的开盘价、最高价、最低价、收盘价简称为:Open、High、Low、Close。

作者拿到这个算法计算资料时详细看了一遍,发现这个计算其实并不复杂(真的很简单),计算主要分两个部分的处理。

  • 初始Bar算法:

因为这个算法是一个迭代算法,计算当前Bar的数据时需要引用到前一个Bar的数据(很多经典指标、算法都是这种迭代计算),所以第一根Bar的计算必然是与其后的迭代计算是不同的。
根据这个指标的计算资料的描述,第一根平均K线Bar的计算方式如下:

  • 后续Bar迭代算法:

除了第一根平均K线Bar之外,后续的平均K线Bar需要迭代计算,算法如下:

设计实现

在FMZ.CN上以「模板类库」形式编写、收纳这个算法,编写一个「JavaScript扩展指标库」。如果还希望“手搓”一些其它指标算法,也可以直接加入到这个模板代码中。

在策略库创建一个策略,选择策略语言为JavaScript,选择策略类型为「模板类库」,命名为:JavaScript扩展指标库

编写并详细注释:

回测测试

运行这个模板类库,执行main函数中的获取数据、画图等操作,计算出了平均K线数据并画图。

使用平均K线算法计算出的数据绘图

该代码用于教学,可以根据具体需求随意扩展、修改。

以平均K线图(Heikin-Ashi)算法为例教你写FMZ扩展指标库的评论 (共 条)

分享到微博请遵守国家法律