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

 
secret:
Странно, отказались несколько лет как, а покупать рекламируют до сих пор...

Вы получили это письмо из терминала брокера, насколько я понимаю. Задайте ему вопрос или попросите обратиться в поддержку , если он сам не может поправить.

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Sergey Dzyublik, 2019.05.23 13:52


Как узнать стоит ждать их исправление или нет?

 (не исправлено в MT5(build 2069)) "Баг с очередью логов в МТ терминале, предположительно, когда количество сообщений в очереди достигает лимита, происходит перевыделение памяти с перекопированием, однако одно сообщение 395-е теряется."
 (исправлено в MT5(build 2069)) "Ошибка компиляции при передаче в шаблонную функцию параметра (void*)(NULL)"".
 (исправлено в MT5(build 2059)) "Тестер стратегий: запланировано 2 прохода, но на практике бесконечное число проходов > 900шт из-за ошибки "OnInit critical error"".
 (не исправлено в MT5(build 2069))  "Некорректное значение поля размер массива в рамках работы дефолтного оператора присваивания для структур с динамическими массивами".
 (не исправлено в MT5(build 2069))  "Компилятор не видит дефолтный конструктор копирования класса при возвращении объекта класса по значению из функции".
  и  (исправлено в MT5(build 2059))  "Ошибка компиляции при выполнении type cast "самого в себя" для шаблонных классов и "сложных" структур".
 (не исправлено в MT5(build 2069))  "При работе с typedef использование шаблонной функции с явной специализацией не вызывает генерацию кода этой шаблонной функции".
 (не исправлено в MT5(build 2069)) "Ошибка компиляции при повторном использовании одной и той же сигнатуры функции в рамках typedef".
 (не исправлено в MT5(build 2069))  "Значительная часть функций для работы со строками не работает с NULL символами в строке (например: ShortArrayToString, StringInit, StringFill)".
 (не исправлено в MT5(build 2069))  "Функция StringSetLength работает только в сторону "обрезания" длины строки, но не увеличения".
 (исправлено в MT5(build 2057)) "Тестер стратегий: запуск 750 процессов "metatester64.exe"".
 "Форум www.mql5.com, при правке сообщения с картинкой, предыдущая картинка не заменяется на новую".


Предложения:
 "Предоставить пользователю возможность принудительной генерации/удаления кода для оператора присвоения (конструктор копирования) по умолчанию".
 "Разрешить функции ArrayCopy копировать классы и "сложные" структуры, аналогично тому как структуры предоставляют функционал deep copy для любого типа объекта".
 "Предоставить пользователю функционал для чтения/установки значения Capacity при работе с динамическими массивами"
 "Изменения по улучшению инфографики сервиса "Сигналы""

 
Эти константы

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Сервисы. Уже работают?

fxsaber, 2019.06.07 06:37

#include <WinAPI\fileapi.mqh>
#include <WinAPI\handleapi.mqh>

#define GENERIC_WRITE                    0x40000000
#define CREATE_ALWAYS                    2
#define FILE_ATTRIBUTE_NORMAL            0x00000080
#define FILE_FLAG_OVERLAPPED             0x40000000

bool FileIsInvalid_WinAPI( const string FileName )
{
  const HANDLE hFile = CreateFileW(FileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);

и многие другие отсутствуют в СБ.

 

Еще раз прошу отключить проскальзывания лимитных ордеров и тейков в Тестере на кастомных символах по реальным тикам.

Сейчас все, кто гонит в Тестере ТС по реальным тикам, где применяются лимитные ордера или тейки, относятся к одной из трех категорий

  • Не ведуют, что их обманывает Тестер.
  • Пофигисты.
  • fxsaber.

Большая просьба прекратить эту практику хотя бы на кастомных символах. Это нужно не только для того, чтобы Тестер не врал, но чтобы и мог быстрее работать.

Ну а как еще обратить внимание на эту проблему?

 

В функции CopyTicks не работает запрос тиковой истории с заданной даты. Поэтому нужно либо запрашивать большое число тиков, либо нужную тиковую историю не получить с помощью кода.

Терминал MT5 виснет намертво если при больших запросах тиковой истории на диске заканчивается место. Падение терминала может приводить к слету всех настроек счетов.

 
Gelium:

В функции CopyTicks не работает запрос тиковой истории с заданной даты. Поэтому нужно либо запрашивать большое число тиков, либо тиковую историю не получить с помощью кода.

Терминал MT5 виснет намертво если при больших запросах тиковой истории на диске заканчивается место. Падение терминала может приводить к слету всех настроек счетов.

Миллисекунды там во входных, не секунды.

 
fxsaber:

Миллисекунды там во входных, не секунды.

Читаем справку:

from

[in]  Дата, начиная с которой запрашиваются тики. Указывается в миллисекундах с 01.01.1970. Если параметр from=0, то отдаются последние count тиков.

Далее простой тест кода:

      int tm_ms = 10000000;
      int received=CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL, tm_ms);

При таком запросе с любым изменением параметра tm_ms всегда отдается 2000 тиков. Так и должно быть или я что-то не так делаю?

 
Gelium:

Читаем справку:

from

[in]  Дата, начиная с которой запрашиваются тики. Указывается в миллисекундах с 01.01.1970. Если параметр from=0, то отдаются последние count тиков.

Далее простой тест кода:

      int tm_ms = 10000000;
      int received=CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL, tm_ms);

При таком запросе с любым изменением параметра tm_ms всегда отдается 2000 тиков. Так и должно быть или я что-то не так делаю?

long tm_ms = (long)D'2019.06.01' * 1000;
задайте нужный count, чтобы было не 2000.
 

fxsaber:

long tm_ms = (long)D'2019.06.01' * 1000;


задайте нужный count, чтобы было не 2000.

Спасибо, заработало! Мой косяк с int. :)

 
Каждая компиляция дает разное значение в Warning
void OnStart()
{
  int i = 0;

  {
    int i = 0; // declaration of 'i' hides local declaration at line 482781488
  }
}