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

 
A100:

Ошибка при выполнении:

Результат: 2021.02.19 01:00:00

Ожидалось: wrong datetime

Обсуждалось.

 
A100:

Думайте - мозг должен работать.

Возможен вариант через SHORTNAME индикатора.
 
A100:

этот "маленький монстр" у меня вышел в 2 раза короче

Сомневаюсь.

 

Там ошибка не очевидна, потому что: "а может так и задумано было"

Здесь же после выполнения функции GetLastError() = ERR_WRONG_STRING_DATE. Если дата ошибочная, то почему результат не ошибочный?

 
fxsaber:

Сомневаюсь.

Не поленился... посчитал - у Вас 30 строк, у меня- 13

 
A100:

Не поленился... посчитал - у Вас 30 строк, у меня- 13

Главное, чтобы результат совпадал и производительность не падала.

 

Ошибка при двоичном поиске значения в отсортированном массиве:

void OnStart()
  {
   long hash[]= {-8017261424500504960,-7417030212113027668,-4495301772150012897,8444435679621798267};
   long my_hash=hash[3];
   int index=ArrayBsearch(hash,my_hash);
   ArrayPrint(hash);
   Print(my_hash,": ",index);
  }

Результат:

2021.02.19 15:46:22.937 test3 (EURUSD,M1)       -8017261424500504960 -7417030212113027668 -4495301772150012897  8444435679621798267
2021.02.19 15:46:22.937 test3 (EURUSD,M1)       8444435679621798267: 2

Вместо 2 должно быть 3

 
Aliaksandr Hryshyn:

Ошибка при двоичном поиске значения в отсортированном массиве:

Результат:

Вместо 2 должно быть 3

//+------------------------------------------------------------------+
//| если добавить еще одно положительное число, то ошибки нет. где-то|
//|косяк в алгоритме бинарного поиска при переходе с минуса на плюс. |
//+------------------------------------------------------------------+
void OnStart()
  {
   long hash[]= {-8017261424500504960,-7417030212113027668,-4495301772150012897,8444435679621798267,8444435679621798268};
   ArrayPrint(hash);
   for(int i=0; i<ArraySize(hash); i++)
     {
      long my_hash=hash[i];
      int index=ArrayBsearch(hash,my_hash);
      Print(my_hash,": ",index);
     }
  }
//+------------------------------------------------------------------+
//| >>>| -8017261424500504960 -7417030212113027668                   |
//|-4495301772150012897 8444435679621798267  8444435679621798268     |
//|   -8017261424500504960: 0                                        |
//|   -7417030212113027668: 1                                        |
//|   -4495301772150012897: 2                                        |
//|   8444435679621798267: 3                                         |
//|   8444435679621798268: 4                                         |
//+------------------------------------------------------------------+
 
DMITRII PECHERITSA:

Тут вопрос не в обходе ошибки а в её исправлении, тем более эта функция может использоваться во множестве исходниках, даже и в стандартных. И совсем не исключено что она используется в самом коде терминала, редакторе кода...

 
Aliaksandr Hryshyn:

Тут вопрос не в обходе ошибки а в её исправлении, тем более эта функция может использоваться во множестве исходниках, даже и в стандартных. И совсем не исключено что она используется в самом коде терминала, редакторе кода...

  исправят, наверное. по-моему, проблема с большими long-ами в ситуации, когда почти все биты заняты. удивительно, что кто-то нашел эту ошибку спустя столько времени.