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

 
lynxntech #:

удалил свои сообщения,

написанные останутся видными им.

Уже видели про несколько ваших аккаунтов. 
 
Artyom Trishkin #:
Уже видели про несколько ваших аккаунтов. 

какие смог, удалил,

а про те которые удалил, они видны остались администрации.

надеюсь пойдет на пользу, для всех не будешь 
 
Robert Sadamon #:

Спасибо, что проверили. Это не я решил, что в коде ошибка. В режиме отладки, я вижу что тикет берется с "потолка". Соответственно до расчетов профита дело не доходит. Терминал у меня глючит получается? Или компилятор?

вот в отладке прошли строку получения тикета. Выдал не понятно что?! По истории смотрю закрыто было всего не более 20 сделок.

Соответственно в тестере советник работает не правильно. Это у меня уже не первый раз такое. Как то заказчик остался не доволен, а я так ничего и сделать не смог, чтобы исправить этот баг

Очевидно, что отладчик поломали совсем.

Этот цикл

  int i, c, l;
  for(i=2; i < rates_total; i++)
   {
    c=i-1;
    l=i-2;
    if(i == 5)
      printf("%d %d %d", l, c, i);
    DebugBreak();
   }

в режиме отладки всегда показывает, что i всегда 2; с всегда 0 и l всегда 0;

Только когда выполнено условие if(i == 5) печатает правильные значения, но в дебагере по прежнему никаких изменений.

Как быстро человек привыкает к хорошему и как болезненно от этого отвыкать. Что случилось с командой MQ???

 

Что это значит?

2024.07.24 22:28:09.909 MQL5    VirtualAlloc failed in large allocator, size=17087594608
2024.07.24 22:28:32.922 MQL5    VirtualAlloc failed in large allocator, size=15509967784
2024.07.24 22:35:19.423 MQL5    VirtualAlloc failed in large allocator, size=13194711952
2024.07.24 22:42:11.706 MQL5    VirtualAlloc failed in large allocator, size=14125808776
 
Aleksey Vyazmikin # :

Что это значит?

Вы используете FileReadArray()?

 
Alain Verleyen #:
FileReadArray

Да. Такие сообщения не всегда бывают. Работа скрипта не останавливается.

 
не знаю куда такое писать, вроде бы эта тема больше подходит, откуда у меня взялся бан на 10 лет? вроде бы ни за что накинули  (сегодня также снялся) Хотел ответить человеку тогда в своей теме.
 
Mickey Moose #:
не знаю куда такое писать, вроде бы эта тема больше подходит, откуда у меня взялся бан на 10 лет? вроде бы ни за что накинули  (сегодня также снялся) Хотел ответить человеку тогда в своей теме.

Ну Вы же пишете, а значит - нет бана.

Если видите в профиле бан, перезагрузите роутер - наверняка у него динамический IP, и просто текущий попал на забаненный адрес. После перезагрузки роутера, IP сменится, и бана не будет.

 

Правильно ли я понимаю, что при вызове метода withPtr() указатель будет проверен количество раз, равное размеру массива m_a.x[], а при вызове метода withRef() указатель будет проверен только 1 раз?

class A
  {
public:
   long x[];
  };

#define _methodBody(arr)                  \
   long result = 0;                       \
   for(int i = _sizeOfX - 1; i >= 0; i--) \
      result += arr[i];                   \
   return(result);

class B
  {
public:
   long withPtr()             { _methodBody(m_a.x) }
   long withRef(const A& obj) { _methodBody(obj.x) }
private:
   const A*const m_a;
public:
         B(A* ptr) : m_a(ptr) {}
  };

Полный код прикрепил в виде скрипта. Скрипт сравнивает скорость выполнения методов  withPtr() и withRef().

Для десяти миллионов обращений withRef() показывает примерно пятикратное ускорение (режим компиляции: maximum optimization):

B::testWithPtr: 25947
B::testWithRef: 4856
Файлы:
 
Aleksey Vyazmikin # :

Да. Такие сообщения не всегда бывают. Работа скрипта не останавливается.

Мне потребовалось много времени, чтобы обнаружить, что сообщение «Ошибка VirtualAlloc» связано с FileReadArray(), поскольку это происходило редко.

Это произошло из-за изменения в файле данных, которое привело к чтению за конец файла. Вы можете обнаружить это, поскольку оно вернет ошибку:

ERR_ARRAY_RESIZE_ERROR

4007

Недостаточно памяти для перемещения массива или попытка изменить размер статического массива