错误、漏洞、问题 - 页 2584

 
Georgiy Merts:

这里有一个问题。

在优化过程中,有时我得到一个数组超限的错误,有一组特定的参数。这个错误很少发生,我无法重现它。我需要知道发生这个错误的参数集。 如何确定这个参数集?在测试人员的日志中有一个通过号,但这个参数集在报告中没有出现。我在哪里可以看到这次运行中使用了哪些参数?

修改这个圣经,把打印的内容写到公共文件中。

 
还有一个错误--如果其中一个参数是ENUM_TIMEFRAMES周期,那么在一个一维或二维的图表上,通过这个参数--我没有显示,原因是什么?只有我是这样吗?
 
fxsaber:

修改这个书目,把打印的内容写到公共文件中。

是的,如果没有其他选择,这是一个不错的解决方案。谢谢你。

而且让我们保持直呼其名,我们实际上已经认识很长时间了。

 
我的理解是否正确,指向一个变量的指针在mql中不起作用?
void OnStart()
{ 
   int *ptr;
}

编译器说这个指针不能使用。

 
Roman:
我的理解是否正确,指向一个变量的指针在mql中不起作用?

编译器说这个指针不能使用。

似乎指针只能指向对象,并通过调用GetPointer()获得。

 
Georgiy Merts:

似乎指针只能指向对象,并通过调用GetPointer()获得。

谢谢你。是的,对类对象没有问题,这就是为什么我惊讶于它对变量不起作用,虽然这很可悲。

 

我的个人电脑里没有地方可以放经纪账户。

当我打开 "收藏夹 "时,只有一个白页。

怎么了?

我不能在mql5上看到账户,也不能订阅任何人。

 

在删除指标时,如果有ChartIndicatorGet 函数,指标不会调用OnDeinit,该函数只是读取自身的一个句柄,而不会将其添加到一个变量中。

#property indicator_chart_window

int OnInit() {
   for (int i=0; i<ChartIndicatorsTotal(0,0); i++)  
       ChartIndicatorGet(0,0,ChartIndicatorName(0,0,i));
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+

void OnDeinit(const int reason) {
   Print("Deinit");
}

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) {
   return(rates_total);
}

而如果你在删除指标后重新编译,就会发生OnDeinit的延迟调用(Print("Deinit");)。

可以吗?


构建2168

附加的文件:
 
Nikolai Semko:

如果一个指标有ChartIndicatorGet函数,在删除指标时不会调用OnDeinit,该函数只是读取自己的句柄,甚至不把句柄放入变量。

如果收到自己的句柄,IndicatorRelease 是强制性的。

 
fxsaber:

如果你得到自己的手柄,IndicatorRelease是强制性的。

嗯...
还有, 在哪里以及在什么时候可以删除一个指标手柄

使用OnDeinit是合乎逻辑的,但它不起作用。

ZS 这是一个奇怪的画面。
我试了一下:如果我在得到手柄后立即删除,它就会被删除,但指标本身不会,名称保持不变,而且它已经有一个新的手柄并继续工作。而且,确实如此,那么在删除指标时,OnDeinit会运行。

不过,我用无缓冲器的指标试了一下。我不知道当句柄被删除时,数据缓冲区会有什么表现。
我不明白...