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

Fisher指标的JavaScript语言实现以及在FMZ上画图

2021-12-28 14:49 作者:发明者量化  | 我要投稿

交易中技术分析的时候,交易者都把股价数据作为正态分布的数据来分析、研究。不过,股价数据分布并不符合标准的正态分布。Fisher Transformation就是一个可以把价格数据转换为类似于正态分布的方法。Fisher Transformation将市场数据平滑,剔除一些尖锐的小周期振荡。利用当日和前一日的指标交错可以发出交易信号。

关于Fisher Transform的资料百度、知乎很多,这里不再赘述。

指标算法:

  • 今日中间价:

    mid=(low + high) / 2

  • 确定计算周期,可使用10日为周期。计算周期内最高价和最低价:

    lowestLow = 周期内最低价highestHigh = 周期内最高价

  • 定义价变参数(其中的ratio为0-1之间常数,例如可取0.5或0.33):

求x
  • 对价变参数x使用Fisher变换,得到Fisher指标:

求fisher

使用JavaScript语言实现该算法

按照该指标算法逐步实现。需要注意的是这个算法是一个迭代算法,对于preXpreFish开始都置为0。对于Math.log就是求以自然常数e为底的对数。另外在上面算法中未提及对于x的修正,我在编写时也差点忽略掉这个问题:

修正x的值,大于0.99就强制设置为0.999。小于-0.99同理。

第一次看这个算法、指标,按照算法移植出来之后。该实现我也并未验证,有兴趣研究的同学可以验证下有无错误。非常感谢指出错误。

Fisher Transform指标算法源码:

画图

在FMZ上画图就很简单了,策略广场:https://www.fmz.com/square上面有大把的例子可以参考,也可以搜索。

在FMZ上运行

所以在FMZ上研究数据、图形显示、设计策略是非常方便的。
这里抛砖引玉,欢迎各位老师、同学留言。

Fisher指标的JavaScript语言实现以及在FMZ上画图的评论 (共 条)

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