北京银行医疗保险查询:请教高手 IndicatorCounted这个函数是什么意思(页 1)

来源:百度文库 编辑:中财网 时间:2024/04/29 00:02:49
520FX » 【MT4开发申请】 » 请教高手 IndicatorCounted这个函数是什么意思

fhqvfhptxgt 发表于 2010-8-1 14:36

请教高手 IndicatorCounted这个函数是什么意思

下面这段代码看了好几天了,就是搞不懂。
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;

idcjet2 发表于 2010-8-1 17:34

跟我一样,新手

bull 发表于 2010-8-3 15:59

这个问题解释过无数次了
IndicatorCounted();计算的是指标加载到图上后已经计算过的K线个数
Bars是全部历史K线的个数

原理是:指标刚加载到图上的时候IndicatorCounted()是0 然后程序会自动计算一遍所有K线对应的指标数值并画线。然后每来一个新价格的时候IndicatorCounted();就只是1或者2了(视指标的计算方式决定)。
这时候for循环只需要计算这些有变动的K线对应的指标数值就行了,不需要从头到尾重复计算了。
这就是这段程序的目的,找出for循环中仅需当前计算的K线的个数

cucn 发表于 2011-8-8 01:17

谢谢了,我也学习学习

mri 发表于 2011-9-11 22:20

int start()
指标触发函数。与init函数不同,该函数在有数据变化时被触发,如果数据被不断更新,则该函数将不断执行。start也是系统默认的函数名,但使用时也仍然需要进行创设,所以也要加定义符int

{
int limit=Bars-IndicatorCounted();
自定义一个变量limit,并赋值
Bars是图表中的柱数
IndicatorCounted()缓存中的柱数,就是已经计算过的有值的柱数
这样limit的值就是未经计算的柱数,这样就可以起到优化程序的作用。

for(int i=0; i循环语句。
循环从i=0开始,每循环一次i值增加1,一直循环到i由于循环变量i为一个新变量,所以要先定义,加上整型变量定义符int
下面大括中为循环体,此例中只一条语句
{
buf=
iMA(NULL,0,FMA,0,1,0,i)
-iMA(NULL,0,SMA,0,1,0,i);
}
给数组buf赋值,其值分别为相应位置上两条均线的差
i是水平位置序号值,即烛柱从右到左的序号,右边第一个烛柱序号为0

return(0);
start函数结束
}

引自:[url]h*t*t*p://cache.baidu.com/c?m=9d78d513d9981df903bcc7385056c0676905dd24609187436b93d3169c3e1d070571e2c83a3f554196d27c1041f31117a2e73605665e7faacd9bc30c9de8c47f38885134721c844211d00eafbd4532c1569347&p=8b2a921c9f8a11a05bedd1231605&user=baidu&fm=sc&query=indicatorcounted&qid=d80aa5420a25bcd7&p1=47&fast=y#baidusnap0[/url]