0

本文只适合指标的程序理解,与EA无关
大家在制作自己的指标文件时第一个遇到的问题应该就是这个“循环”问题。之所以不清楚的原因在于没有想明白MT的完整计算过程。下面我们说明一下。
1、最右侧的K线(最新K线)的标号是0,依次往左的标号是1、2、3的顺序。当一个新K线生成后,则新K线的标号变成0,而原来标号为0的K线变成标号1。
2、指标加载后的计算过程需要详细描述一下:
指标加载后,会从最左侧的K线开始从左往右顺序计算,这是“基本框架”
然后因为每个K线上都需要计算一次,所以这个循环在第一次加载的时候是计算量最大的。
为了减少加载后到来价格时的计算减少,我们一般在程序的循环上做些技巧处理。因为MT提供
了标记最后一个没有计算的K线标号。所以我们都采用从最后一个“未计算K线”到标号0的顺序进行循环。
这就是减少计算量的循环方法。下面列出常见的循环代码框架:
     int i;  
     int limit;   
     int counted_bars=IndicatorCounted();
     if(counted_bars<0) return(-1);
     if(counted_bars>0) counted_bars--;
     limit=Bars-counted_bars;    
      for (i=limit-1;i>=0;i--)
     {
      ........这里面就是循环计算的指标主要部分。上面的循环控制就是从最后一个“未计算K线”到标号0的顺序
     }

关闭 返回顶部
联系我们
Copyright © 2011. 聚财吧. All rights reserved.