Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления - страница 16

 
PapaYozh #:


Гуглите что-нибудь типа "целочисленная арифметика в программировании".

еще один умник....

Целочисленная арифметика немного о другом.


m_hourprocent[i]=NormalizeDouble((double)icount*100/m_wavecount,2);
И что мне теперь всегда одно из чисел преобразовывать к double чтобы получать дробное??? Ну это бред, так раньше не работало.
 
Andrey Kaunov #:

Вот человек... Вы упустили то, что ищу я этот бар не просто, а с определенной целью. Я всё изложил вот тут подробно. Ознакомьтесь на досуге. Всего вам наилучшего!

Вот здесь покороче:


Наверное, надо в эту ветку поместить Ваше описание. Иначе есть риск, что разработчики не заметят.

Рашид (@Rashid Umarov) уже не реагирует на Ваши сообщения, хотя ошибка, как говорится, на лицо.

Ошибки, баги, вопросы - Попробуйте через SymbolInfoTick или SymbolInfoDouble.
Ошибки, баги, вопросы - Попробуйте через SymbolInfoTick или SymbolInfoDouble.
  • 2010.06.02
  • www.mql5.com
то ордер по GBPUSD не открывается и в логе ошибка 26 Core 1 failed instant sell 1. И не подскажете как правильнее через SymbolInfoTick или SymbolInfoDouble. Написал такой код происходит что-то не понятное где может быть ошибка. Потому что отсутствуют операторы break между case спасибо
 
Alexandr Gavrilin #:

еще один умник....

Целочисленная арифметика немного о другом.

Воздержись от оскорблений.

 
PapaYozh #:

Воздержись от оскорблений.

Умник это оскорбление? Ну тогда извините, если назвав человека умным...он считает для себя оскорблением.

 
Alexandr Gavrilin #:

Умник это оскорбление? Ну тогда извините, если назвав человека умным...он считает для себя оскорблением.

Ну, тогда про целочисленную арифметику почитайте.

 
Alexandr Gavrilin #:

еще один умник....

Целочисленная арифметика немного о другом.


И что мне теперь всегда одно из чисел преобразовывать к double чтобы получать дробное??? Ну это бред, так раньше не работало.

наверное на питоне или JS заработался.
Всегда так было в C, C++, MQL4 и MQL5
5/4 = 1

5.0/4 = 1.25

5/4.0 = 1.25

3000 проданных продуктов 

 
Alexandr Gavrilin #:


И что мне теперь всегда одно из чисел преобразовывать к double чтобы получать дробное??? Ну это бред, так раньше не работало.


m_hourprocent[i]=NormalizeDouble(icount*100.0/m_wavecount,2);
 
PapaYozh #:

Наверное, надо в эту ветку поместить Ваше описание. Иначе есть риск, что разработчики не заметят.

Рашид (@Rashid Umarov) уже не реагирует на Ваши сообщения, хотя ошибка, как говорится, на лицо.

Рашиду написал в личку, может вникнет. Попробую и в ту ветку, хотя, мне кажется, там ещё меньше шансов ((

 
Andrey Kaunov #:

Уважаемые разработчики.

В новом (как минимум) обновлении терминала не правильно работает функция iTime(...)

Запускаю такой индикатор:

и получаю такой лог:

То есть, те бары, которые старше настройки количества макс. баров в окне графика, функция iTime(...) не видит. Ошибка 4401 - Запрашиваемая история не найдена

Точно такая же ошибка с функцией iOpen(...), и вероятно с остальными.

Конечно код у вас написан, простите через……… Зачем было так выворачиваться, ведь достаточно написать простой цикл

   datetime arr_time=0, i_time=0;
//---
   for(int i=rates_total-1; i_time<=0 && i>0; i--) {
      arr_time=time[i];
      ResetLastError();
      i_time=iTime(_Symbol,PERIOD_CURRENT,i);
      printf("i: %d   rates_total-%d: %d   time: %I64d   iTime: %I64d   Error: %d", i, i, rates_total-i, arr_time, i_time, GetLastError());
   }

и получить значения самого свежего бара.

На снимке видно невооружённым взглядом, что на отладке, i = rates_total-1. При этом время time[i] равно текущему часу. А время iTime(_Symbol,PERIOD_CURRENT,i) того-же бара не найдено.

И на следующем баре тоже не найдено…

 
Alexey Viktorov #:


На снимке видно невооружённым взглядом, что на отладке, i = rates_total-1. При этом время time[i] равно текущему часу. А время iTime(_Symbol,PERIOD_CURRENT,i) того-же бара не найдено.


В этом и есть ошибка.