有些数组没有被初始化,或者一些需要引用前值的指标在K线不够其周期并且没有初始数组值的时候,它的返回值就会很大往往过亿。
最简单的解决办法就是判断一下这个值,比如不能大于等于10000 或者交易品种的报价。
个人观点,仅供参考。
你看,数组肯定初始化了,前值问题也用int limit=Bars-n-IndicatorCounted();考虑了。关键是我直接拉上图能看到合理的均量线结果,但是EA一调就返回极大值,不信的可以试一下。
feifeiyu7247:
你看,数组肯定初始化了,前值问题也用int limit=Bars-n-IndicatorCounted();考虑了。关键是我直接拉上图能看到合理的均量线结果,但是EA一调就返回极大值,不信的可以试一下。
你看,数组肯定初始化了,前值问题也用int limit=Bars-n-IndicatorCounted();考虑了。关键是我直接拉上图能看到合理的均量线结果,但是EA一调就返回极大值,不信的可以试一下。
for(int k=0;k<limit+1;k++) 这个for循环有问题,该循环应该从大到0,而非反之;
indicator中的数组有些特殊,主要跟它不断扩容有关,修改试试吧
一个简单的均量线指标,图形上看没问题,EA调用就返回2147483647,请高手帮忙解决,不胜感激
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Blue
double averagevolume[];
extern int n=10;
int init() {
SetIndexBuffer(0,averagevolume);
SetIndexStyle(0,DRAW_LINE);
return(0); }
void start() {
int limit=Bars-n-IndicatorCounted();
for(int k=0;k<limit+1;k++) {
int sum1=0;
for(int i=k;i<k+n;i++) {sum1+=iVolume(NULL,0,i);}
averagevolume[k]=sum1/n; }
return;
}
调用EA代码:
int start()
{
Print(iCustom(NULL,PERIOD_M5,"均量线",5,0,1));
return(0);
}