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

 
Alexey Viktorov #:
为什么要等到明天呢?如果你懒得翻看规格,可以通过所有感兴趣的符号运行脚本,找到匹配的保证金货币和利润货币。我在写之前没有检查所有的东西,但我没有发现任何巧合......

今天有点忙。


Taras Slobodyanik#:

好吧,重点是快速 - 采取货币代码,在一个准备好的数组上进行搜索,该数组在交易开始时被更新。

所有的东西都很难在一个阵列中一次性得分

 
Yevhenii Levchenko 静态变量 var的问题。有一个U类,它创建了一个X类型的对象,做了一些工作,然后将其销毁。而且这种情况定期发生。问题:var变量何时被删除?


它将永远活着。

 
Koldun Zloy #:

它将永远活着。

只要对象U还活着?还是直到终端重新启动?粗略地说,之后就会被删除?

 
Yevhenii Levchenko #:

只要U对象还活着?

不,类的实例甚至可能没有被创建,但类的静态字段将被分配内存和初始化....。顺便说一下,在我看来,你的例子不应该被编译,静态字段的初始化应该在描述之外。

Yevhenii Levchenko#:

是否直到终端过载?粗略地说,在这之后,它被移除?

终端与此无关,生命周期与全局声明的变量或常规静态变量相同--当您加载MQL-程序时,内存被分配,当卸载MQL-程序时,内存被释放。

 
Igor Makanu #:

不,类的实例甚至可能没有被创建,但类的静态字段将被分配内存和初始化....。顺便说一下,在我看来,你的例子不应该被编译,静态字段的初始化应该是在描述之外。

好了!似乎可以编译了......

Igor Makanu#:

终端与此无关,寿命与全局描述的变量或常规静态变量相同 - 内存在加载MQL-程序时分配,在卸载MQL-程序时释放。

也就是说,如果这一切都在EA内部,那么这个变量会在内存中停留到EA的OnDeinit()?

 
Yevhenii Levchenko #:

诺姆!似乎可以编译...

那么,如果这一切都在EA内部,变量就会在内存中停留到EA的OnDeinit()?

静态变量在OnDeinit()之后被销毁。

 
Koldun Zloy #:

静态变量在OnDeinit()之后被销毁。

好的!谢谢 :)

 
帮助选择经纪商,在哪里交易最好,提款应该不是问题。
 
dryun777 #:
帮忙选择一个经纪人,在那里交易最好,提款不会有问题......谢谢

在这一资源上,命名一个经纪人就等同于讨论。而摇篮曲并没有睡觉,并威胁要进行报复。所以自己看吧...

 
Alexey Viktorov #:

瓦莱里有正确的思想方向。但我不明白为什么我们需要在周期的每一次迭代中定义我们要寻找的订单货币?而且我认为采取保证金货币和利润货币而不是在行内寻找更容易。看一下货币的规格......我就会这样做。

bool Search(string _sy)
 {
  int OT = OrdersTotal();
  string curencyProfit = SymbolInfoString(_sy, SYMBOL_CURRENCY_PROFIT),
         currencyMargin = SymbolInfoString(_sy, SYMBOL_CURRENCY_MARGIN);
  for(int i = 0; i < OT; i++)
   {
    if(OrderSelect(i, SELECT_BY_POS))
     {
      bool res = StringFind(OrderSymbol(), curencyProfit) >= 0 ||
                 StringFind(OrderSymbol(), currencyMargin) >= 0;
      if(res)
        return(true);
     }
   }
  return(false);
 }

检查了一下,工作正常。

谢谢!

原因: