加载中…
个人资料
boolapi
boolapi
  • 博客等级:
  • 博客积分:0
  • 博客访问:7,071
  • 关注人气:113
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

在MT5下利用python作策略统计分析-ZigZag线段统计

(2021-02-14 22:01:51)
标签:

mt5

python

分类: MT5
接续上篇的 python 数据统计,大部分喜欢使用 ZigZag 指标的交易者都知道(如下图 GBPUSD H1 叠加 ZigZag 指标),这个指标是有未来性的,也就是随着行情突破前高前低,最后的指标线段是会重绘的。

在MT5下利用python作策略统计分析-ZigZag线段统计

但是这个未来性的指标还是具有参考价值的,从 ZigZag 指标源码里可以看的,在下图的 3 到 4 直接的线段是不会再改变的。

在MT5下利用python作策略统计分析-ZigZag线段统计

如果统计过去从 2017-2020 GBPUSD H1 ZigZag 的不再变动的线段长度,可以得到:

上涨线段最大长度为 846.0 pips (截图的输出单位是小点, point), 最小长度是 19.7 pips

下跌线段最大长度为 679.3 pips,最小长度是 15.0 pips

得到这样跨度甚大的数组,自然需要用统计学里的 Gaussian kernel density estimation 来区分开这些长度统计的分布。python 丰富的统计和绘图库只要简单几行代码就可以生成下面的图形:
在MT5下利用python作策略统计分析-ZigZag线段统计

蓝色是上涨线段的分布线,橘色是下跌线段的分布线。可以清楚的看的上涨或下跌线段,概率最高是分布在 80 pips,表示大部分 GBPUSD H1 ZigZag 线段约略这个长度,大于 100 pips 后,概率就大幅的衰减。

这个统计结果表示,大部分行情是在一个宽幅范围内震荡,只有少数行情可以走出一个像样的连续趋势行情,这是符合市场行情的实际观察。不过如要生成交易策略,顺势交易者和逆势交易者,看到这样的统计结论,产生的策略恐怕会有很大的不同。

这类的指标统计如果放到 python 来写,最常遇到的问题是,mt5 的内建指标库和 python 在网上可以找到现成的第三方指标代码库,有些执行结果是一样,有些是不太相同,例如这次统计使用的 ZigZag 指标。对于执行不同的指标,为确保和 mt5 端对应的策略做对比,最好是从 mql5 指标源码再作转写。

mt5 官方 python 函数里返回的 K 线 numpy array 是从行情最左边 K 线为 row index=0 ,最右边是数组最大 row index,这点和 mql5 自带指标里的官方提供的指标代码的数组处理顺序是一样的,也就是 mql5 术语的 array series 是默认 false,和 mql4 自带指标默认数组顺序是 true 不同。所以如需自行转写 mt5 自带指标到 python 指标,从 mql5 自带指标代码来转写,会比从 mql4 自带指标代码转写减少数组反向处理。


个人提供 MT4/MT5 EA 或 指标定制编程代写服务,有兴趣可透过邮件 boolapi@qq.com 或 QQ 1034612103 联系 (加好友后即可立即留言)

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有