是否参考MA(moving averge)源码中的计算方法比较合理呢?
void sma() { double sum=0; int i,pos=Bars-ExtCountedBars-1; //---- initial accumulation if(pos<MA_Period) pos=MA_Period; for(i=1;i<MA_Period;i++,pos--) sum+=Close[pos]; //---- main calculation loop while(pos>=0) { sum+=Close[pos]; ExtMapBuffer[pos]=sum/MA_Period; sum-=Close[pos+MA_Period-1]; pos--; }
I think you mean something like that:
start() { double val; for (i=limit;i>=0;i--) { val=0; if (High[i]>Close[i+1]) val=High[i]-Close[i+1]; difference[i]=val; summ=summ+val-difference[i+period]; SummBuffer[i]=summ; } }
start()
{
double val;
for (i=limit;i>=0;i--)//int limit=Bars-ExtCountedBars-1 ?
{
val=0;
if (High[i]>Close[i+1]) val=High[i]-Close[i+1];
difference[i]=val;
summ=summ+val-difference[i+period];//period是我设定的周期吧?
SummBuffer[i]=summ;
}
}
//------------------+
ROSH,这样的代码得不到结果呀!
我想实现的是累计一个数值My_sum,你可以用我的例子再举一个程式吗?
A_sum[ i ] = ( High[0] + Low[0] ) / 2 * ( Close[0] - Close[1] ) ;
My_sum = sum ( A_sum, 36 ) ;
//累计36周期的My_sum的和值.
int 输入的参数; A_sum[ i ] = ( High[0] + Low[0] ) / 2 * ( Close[0] - Close[1] ) ; My_sum = sum ( A_sum, 输入的参数 ) ; //累计36周期的My_sum的和值.
我翻遍MQL4的函数库,未能发现与SUM这中累计求和函数相同的函数。
是否在MQL中只能采用逻辑运算的方法来进行呢?
比如我想求12个周期内(当天最高价-前收盘价)与0比较的最大值的总和
SUM(mathmax(high - Pre_close),0),12)
这样的计算方式在MT4中应使用什么样的函数或者逻辑运算为好呢?
请给予提示或者帮忙编一小段。
再次感谢~(*^__^*)