新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1531

 

你如何处理终端冻结的问题?

代码很简单,但速度很慢

   for(int i=limit;i>=0;i--)
     {
      RSI_01Buffer[i]=iRSI(NULL,0,RSI_Period,RSI_Price,i);
      RSI_02Buffer[i]=iMAOnArray(RSI_01Buffer,0,MA_Period,0,MODE_SMA,i);
     }
 
 
Alexey Viktorov:

在OnTick()中放置第一个启动标志更容易、更安全。

它应该一次性完成计算和渲染,即使是在周末也是如此。

 
Igor Makanu:

我不会猜测会发生什么,我看到的第一件事是,你在OnInit()中暂停获取指标值--如果用户在那个时候切换TF,会发生什么?

SZY: 如果你运行一个EA,然后关闭终端,并在运行EA的情况下重新打开终端,你的代码会有什么表现?

这些变体被认为是

 

请提醒我一件微不足道的事情。我的EA在测试器中正常打开和关闭订单。现在我已经用这个演示工作了一个星期,一切都很好。但在两种情况下,当打开第二个订单(Marting)时,我的EA在余额为正时没有关闭两个订单,但只有一个订单一直在挣扎,直到我关闭了采取的订单。我看了看日志--价格是 "重新报价"。似乎不应该是一个问题,无论如何应该关闭,但它没有。

所以,我还没有写出条件下订单关闭的SENDING(REQUIRED)这个函数。请告诉我怎么写这个琐事。谢谢你。

 
Порт-моне тв:

请提醒我一件微不足道的事情。我的EA在测试器中正常打开和关闭订单。现在我已经用这个演示工作了一个星期,一切都很好。但在两种情况下,当打开第二个订单(Marting)时,我的EA在余额为正时没有关闭两个订单,但只有一个订单一直在挣扎,直到我关闭了采取的订单。我看了一下日志--价格是 "重新报价"。似乎不应该是一个问题,无论如何应该关闭,但它没有。

所以,我还没有写出条件下订单关闭的SENDING(REQUIRED)这个函数。请告诉我怎么写这个琐事。谢谢你。

if(GetLastError()==138)OrderClose(...);
或增加滑移量
 
MakarFX:
或增加滑移量。

谢谢你的答复。为什么138????这是一个错误号码吗?以及增加多少滑移量(请解释增加的意义)。谢谢你

 
Порт-моне тв:

为什么138????它是一个错误号码吗?


Port mone tv:

以及增加多少滑移量(请解释增加的意义)。

这取决于你, 滑移 越多重新报价

 
MakarFX:

你如何处理终端冻结的问题?

代码很简单,但它非常繁忙。

很奇怪...

我用int start()代替OnCalculate 来做,它完全没有挂起。

为什么?

 
Andrey Sokolov:

有必要在第一时间进行计算和渲染,即使是在周末也是如此。

指示器在一个线程中工作,如果一个人等待,其他所有人都会等待,直到终端挂起。
当启动MT时,指标(-s)的初始化可以在终端变量的初始化 之前发生,也就是说,抓到一个挂起是小菜一碟。

原因: