© 本贴为 EaCode小胖李 原创/首发,严禁抄袭!
最后由 EaCode小胖李 于 2024-2-27 11:15 编辑
我们在进行交易的时候,经常会有跨周期分析行情的需求。比如我们交易的盘面是M5,却也想看看M15周期的走势。这时候,跨周期指标可能就能帮助到我们。
以均线为13柱均线为例,5分钟均线(当前),15分钟均线,1小时均线,如下图所示。
这样我们可以清楚的看到均线在各个时间轴的走势情况,可以更方便的帮助我们分析行情。
有的朋友可能思考过这样一个问题,就是5分钟的30柱均线,和15分钟的10柱均线,是否是一致的。或者有什么差异,现在我就带大家看下。
从上图,我们可以看到他们是不同的。
那这样的跨周期均线该如何开发呢?
1. 需要明白,你当前图表是在M5,那你的指标Buffer就是和M5对应。如果M5图表有900个柱,就得在Buffer中放900个值。
2. 如果在M5图表有900个柱,那我们计算M15的均线,就只有300个值。每三根M5柱走完,才会有一个M15柱形成。
3. 即使M15有300个值,我们也需要装到900个Buffer中。注定每3个buffer值是相同的。
4. 在实际开发中其实超级简单,只需要把每个M5柱对应的M15柱对应的均线值,放到这900个buffer中就行了。因为每三根M5柱,对应的M15的值肯定是一样的,我们直接放值就行了。
5. 关键问题就是,如何知道M5柱对应的是M15的哪根柱。这里我们就需要用到iBarShift函数了。
完整代码如下:
购买
已有0人购买, 当前内容需向作者支付 3 H币 才能浏览
思考问题:
如果我们开发的不是这样的跨周期指标,而是更复杂的指标该怎么办?比如先计算A Buffer,再根据A Buffer计算出B Buffer;再根据B Buffer计算出C buffer。
因为是跨周期的,A Buffer中的数据类似{1,1,1,2,2,2,3,3,3,4,4,4,...,x,x,x}。所以你是无法直接通过这些数据计算出B Buffer的。
而是需要先间隔取值,取出{1,2,3,4,...,x}等数据,计算出理论上的B Buffer,如{8,7,6,5,...,z}。再进行插值转换成最终的B Buffer{8,8,8,7,7,7,6,6,6,5,5,5,...,z,z,z}。
当前从B Buffer计算出C buffer也是同样的流程。
今天就讲到这里,大家听懂了吗? |