Ошибки, баги, вопросы - страница 736

 
Я имел виду его и еще с .chm расширением
 
Zeleniy:
Я имел виду его и еще с .chm расширением  

https://www.mql5.com/files/docs/mt5/mql5/chm/mql5_russian.chm

https://www.mql5.com/files/pdf/mql5_russian.pdf 

 
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) после ArraySetAsSeries(b,true); Series == false
2012.05.06 17:29:55 TEMP (EURUSD,H1) после CopyRates Series == false
2012.05.06 17:29:55 TEMP (EURUSD,H1) после MqlRates a[],b[] Series == false

Выдает и не краснеет. Может я закипел?

 

 
 
sergeev:

ArrayGetAsSeries

Снимаю крышку, выкл. огонь.

Спасибо. 

 
Что-то Маркет не работает, нельзя скачать ни демки, ни бесплатные продукты  - "Error loading program *****. Please try again later"
 
papaklass:

1 leaked strings left

Разобрался. Такая запись получается от способа инициализации структуры торгового запроса MQLTradeRequest.

Если инициализировать так:

то  "1 leaked strings left" не появляется.

Если инициализацию вынести из функции OpenPosition() на глобальный уровень, то запись о памяти появляется:    

Относительно второго варианта. Пытаясь разобраться, вышел вот на такой код:

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

Возвращает:

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

Получается, что переменная mrequest={1}  проинициализирована на глобальном уровне программы, но значения её проинициализированных полей программа почему-то не видит. Компилятор тоже ни на что не ругается.

 
Вы проинициализировали первый член структуры единицей, а остальные - нулем по умолчанию.
 
Renat:
Вы проинициализировали первый член структуры единицей, а остальные - нулем по умолчанию.
Понял. Объяснение нашёл в Справочнике: "В инициализирующей последовательности должно быть хотя бы одно значение: этим значением инициализируется первый элемент соответствующей структуры или массива, отсутствующие элементы считаются равными нулю".
 
papaklass:

1 leaked strings left

Разобрался. Такая запись получается от способа инициализации структуры торгового запроса MqlTradeRequest.

Если инициализировать так:

то  "1 leaked strings left" не появляется.

Если инициализацию вынести из функции OpenPosition() на глобальный уровень, то запись о памяти появляется: 

 

Спасибо за сообщение, ошибка компилятора исправлена.
Причина обращения: