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

 

Вот такой вопрос.
В MQL4 такой код: 

for (i=0;i<limit;i++) 
{
  t=Time[i];
}
Правильно ли будет в MQL5:
datetime Time[];
ArraySetAsSeries(Time,true);
for (i=0;i<limit;i++) 
{
  CopyTime(_Symbol, _Period, 0, i+1, Time);   
  t=Time[i];
}

 
Vitya:

Вот такой вопрос.
В MQL4 такой код: 

Правильно ли будет в MQL5:

не совсем корректный.

желательно вызвать CopyTime один раз до цикла

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTime
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTime
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyTime - Документация по MQL5
 
sergeev:

не совсем корректный.

желательно вызвать CopyTime один раз до цикла

Так?

  datetime Time[];
  ArraySetAsSeries(Time,true);
  CopyTime(_Symbol, _Period, 0, limit, Time);   

  for (i=0;i<limit;i++) 
  {
    t=Time[i];
  }
 

В Окне Данных есть переменная Volume. На сколько я понимаю, она означает биржевой (реальный) объем. Сегодня обратил внимание, на паре EUR/USD М1 (Альпари), если навести курсор мыши на любой бар, можно увидеть значения volume. Вот мне интересно может кто-то знает, как считаются эти значения? Это торговый объем по паре только клиентов Альпари, или это вообще просто случайные числа, или как... На скрине ниже видно volume = 620 млн.

 

 
Alex5757000:

В Окне Данных есть переменная Volume. На сколько я понимаю, она означает биржевой (реальный) объем. Сегодня обратил внимание, на паре EUR/USD М1 (Альпари), если навести курсор мыши на любой бар, можно увидеть значения volume. Вот мне интересно может кто-то знает, как считаются эти значения? Это торговый объем по паре только клиентов Альпари, или это вообще просто случайные числа, или как... На скрине ниже видно volume = 620 млн.

Только клиентов Альпари. Но внутренние объёмы крупных контор очень сильно коррелируют.
 

Странный глюк во время работы программы

int TimeToCycleIndex(datetime lTime, ENUM_TIMEFRAMES lTimeFrame, int lDays)

{

int Resx;

MqlDateTime Struc;

TimeToStruct(lTime,Struc);

Resx=(MarketDayCycle(lTime,lDays)*60*24+Struc.hour*60+Struc.min)/(PeriodSeconds(lTimeFrame)/60);

Print("Resx = ",Resx,"  ResCalc = ",(MarketDayCycle(lTime,lDays)*60*24+Struc.hour*60+Struc.min)/(PeriodSeconds(lTimeFrame)/60));

return(Resx);

}

Считаем одно и тоже несколько раз для сравнения, кусок лога приведен ниже. Ошибка выделена красным, там не может быть отрицательного числа. Такое впечатление что портится переменная. С чем связана эта проблема и как ее решить? Заранее спасибо за помощь.

array of range '-FreqTime03.mq5'
Resx= -2 ResCalc= 286
Resx= 287 ResCalc= 287
Resx= 0 ResCalc= 0
Resx= 1 ResCalc= 1
Resx= 2 ResCalc= 2
Resx= 3 ResCalc= 3
Resx= 4 ResCalc= 4
Resx= 5 ResCalc= 5
Resx= 6 ResCalc= 6
Resx= 7 ResCalc= 7
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура даты - Документация по MQL5
 
Urain:
Только клиентов Альпари. Но внутренние объёмы крупных контор очень сильно коррелируют.
Откуда инфа? Вроде бы поставщик у Аль-Пари дукас - может скорее их клиенты?
 

В стандартной библиотеке появились классы для сборки графических интерфейсов.  Это радует.

Огорчает - подглючивают диалоги.  Можно в тестовом примере наблюдать.  Если дважды кликнуть и вторым кликом захватить "передвижной" элемент (напр. полоску скроллинга или заголовок окна), то их можно перетащить на произвольное место экрана. Что вроде как неправильно и желательно искоренить.  Второе огорчительное свойство - при горизонтальной переноске окна диалога вместе с ним прокручивается и график на чарте.  Не смертельно, но неприятно, особенно учитывая, что цель переноски зачастую - заглянуть на график под диалогом.  Третье - неустойчивое срабатывание контролов (напр. чек-боксов) и вообще легкая тормознутость (что наверное неустранимо в текущей реализации терминала).

Есть ещё архитектурные неудобства (например, заточенность архитектуры на статическую сборку диалогов (раннее связывание элементов)), но это уж для гурманов. В принципе терпимо.

Есть и плюсы и даже красоты в реализации, но об этом в этой ветке кагбэ не в тему.

В целом - спасибо за стандартные окна и контролы, дело хорошее.  А баги дело исправимое, всё утрясётся.  

--

Ещё хотелось бы иметь в стандартном комплекте  средства реализиции многостраничных диалогов (CTabBox или что-то вроде).

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
gal:

Странный глюк во время работы программы

int TimeToCycleIndex(datetime lTime, ENUM_TIMEFRAMES lTimeFrame, int lDays)

{

int Resx;

MqlDateTime Struc;

TimeToStruct(lTime,Struc);

Resx=(MarketDayCycle(lTime,lDays)*60*24+Struc.hour*60+Struc.min)/(PeriodSeconds(lTimeFrame)/60);

Print("Resx = ",Resx,"  ResCalc = ",(MarketDayCycle(lTime,lDays)*60*24+Struc.hour*60+Struc.min)/(PeriodSeconds(lTimeFrame)/60));

return(Resx);

}

Считаем одно и тоже несколько раз для сравнения, кусок лога приведен ниже. Ошибка выделена красным, там не может быть отрицательного числа. Такое впечатление что портится переменная. С чем связана эта проблема и как ее решить? Заранее спасибо за помощь.

1. Пожалуйста вставляйте код правильно.

2. Можете привести полный исходник, рабочий урезанный пример или код функции MarketDayCycle.

В приведенном куске массивы отсутствуют, собственно как и работа с ними 

 

при установке нового билда 642  не работает звук Testing Finished (звук) после завершения теста советника,

это баг  или ... не баг ?

Причина обращения: