错误、漏洞、问题 - 页 736

 
我指的是它,同时也指.chm扩展名。
 
 
void OnStart()
  {
   MqlRates a[],b[];
   Alert("после MqlRates a[],b[] Series == "+ArrayIsSeries(b));
   CopyRates(Symbol(),PERIOD_CURRENT,0,TerminalInfoInteger(TERMINAL_MAXBARS),a);
   ArraySetAsSeries(a,true);
   CopyRates(Symbol(),PERIOD_M1,0,TerminalInfoInteger(TERMINAL_MAXBARS),b);
   Alert("после CopyRates Series == "+ArrayIsSeries(b));
   ArraySetAsSeries(b,true);
   Alert("после ArraySetAsSeries(b,true); Series == "+ArrayIsSeries(b));
}
2012.05.06 17:29:55 TEMP (EURUSD,H1) after ArraySetAsSeries(b,true); Series ==false
2012.05.06 17:29:55 TEMP (EURUSD,H1) after CopyRates Series == false
2012.05.06 17:29:55 TEMP (EURUSD,H1) afterMqlRates a[],b[] Series == false

它显示出,它没有脸红。可能是我在熬夜?

 
 
sergeev:

ArrayGetAsSeries

揭开盖子,关上火。

谢谢你。

 
市场不工作,不能下载演示或免费产品 - "加载程序错误*****。请稍后再试"
 
papaklass:

还剩1 根漏掉的琴弦

我明白了,这是MQLTradeRequest请求结构 的初始化模式。

如果我们这样初始化它。

那么就不会出现" 还剩1个 泄漏的字符串"。

如果从OpenPosition()函数进行初始化到全局层面,就会出现内存记录。

关于第二个选项。试图弄清楚它,我发现了以下代码。

//+------------------------------------------------------------------+
//|                                                   papaclass4.mq5 |
//+------------------------------------------------------------------+
MqlTradeRequest      mrequest={1};
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("Global: mrequest.price=",mrequest.price);
  }
//+------------------------------------------------------------------+

返回。

2012.05.07 10:52:10 papaclass4 (USDCAD,M1) 全球:mrequest.price=0.0

事实证明,变量mrequest={1}在全局层面上被初始化了,但由于某种原因,程序没有看到其初始化字段的值。 编译器也没有抱怨。

 
你已经将结构的 第一个成员 初始化为1,其余成员默认为0。
 
Renat:
你已经将结构的 第一个成员 初始化为1,其余成员默认为0。
明白了。我在《参考手册》中找到了解释:"初始化序列中必须至少有一个值:相应结构 或数组的第一个元素用这个值初始化,缺少的元素被视为零"。
 
papaklass:

还剩1 根漏掉的琴弦

我想明白了,它来自MqlTradeRequest结构 的初始化方式。

如果我们这样初始化它。

那么就不会出现" 还剩1个 泄漏的字符串"。

如果我们把初始化从OpenPosition()函数移到全局层面,就会出现内存记录。

谢谢你的留言,编译器错误已经修复。