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

 
fxsaber:

Названия символов обрезаются в GUI кэшей оптимизатора


Особенно актуально для кастомных символов - там названия часто длинные.

Название символа не может быть длиннее 32 символов, включая терминирующий 0. То есть, по факту - 31.
 
fxsaber:

Если использовать Тестер/Оптимизатор без длительных перерывов даже на разных символах, тики не пропадают. Наверное, тики удаляются за счет подчистки каких-то кэшей Тестера.

Нашли и исправили.
 
Slava:
Название символа не может быть длиннее 32 символов, включая терминирующий 0. То есть, по факту - 31.

На скрине обрезаны названия из 28-ми символов.

Slava:
Нашли и исправили.

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

1

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

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

fxsaber, 2018.08.28 19:45

Возможно ли как-то починить это к следующему билду?

Когда переключаюсь на другой счет, то чарт кастомного символа теряет бары - "Ожидание обновления". Бары не запросить. При этом тики - без проблем.

После перезагрузки Терминала, конечно, бары на чарте доступны.

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


2.

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

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

fxsaber, 2018.08.28 10:20

CustomTicksReplace(Name, 0, LONG_MAX, Ticks);

Успешное выполнение этой функции занимает минуту при 24 млн тиков. Возможно ли ускорить?

 
fxsaber:

На скрине обрезаны названия из 28-ми символов.

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

1


2.

Про 28 символов проверим.

2. Может и можно ускорить, но это не является первоочередной задачей.

Давайте подробности по первому пункту. Нужно чёткое воспроизведение.

 
Slava:

Давайте подробности по первому пункту. Нужно чёткое воспроизведение.

  1. Открываете два счета на разных торговых серверах.
  2. Запускаете скрипт на EURUSD. По окончании работы скрипта будет создан кастомный символ и открыт его чарт.
  3. Переключаетесь на счет с другого торгового сервера.
  4. Видите на месте чарта кастомного символа "Ожидание обновления".
  5. Баров не будет (тики будут - CTRL+U), пока не перезагрузите Терминал.

 

fxsaber:

3. Переключаетесь на счет с другого торгового сервера.

Переключение равносильно потери связи... не исключено что в данном случае все сведется к этому https://www.mql5.com/ru/forum/275574#comment_8485737

 

Когда мне нужно заполнить часть большого массива одним значением Z я использую конструкцию:

ArrayInitialize(ar,Z);     // промежуточный массив размер массива ar = 1000 
ArrayCopy(arr,ar,5000);    // основной массив заполняется значением Z c 5000 по 5999 элемент


Многие скажут - зачем так сложно, можно ведь проще:

ArrayFill(arr,5000,1000,Z);

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

2018.09.04 11:01:17.222 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayFill = 338
2018.09.04 11:01:17.222 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayInitialize + ArrayCopy = 111
2018.09.04 11:01:18.563 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayFill = 301
2018.09.04 11:01:18.563 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayInitialize + ArrayCopy = 122
2018.09.04 11:01:19.717 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayFill = 334
2018.09.04 11:01:19.717 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayInitialize + ArrayCopy = 142
2018.09.04 11:01:21.095 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayFill = 364
2018.09.04 11:01:21.095 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayInitialize + ArrayCopy = 156

Пару лет назад я уже писал по этому вопросу в СД. На что получил ответ, что мол спасибо, проблему нашли и исправили, в следующем билде будет нормально.

Но проблема остается.

Причем тот же самый тест в MT4:

2018.09.04 11:08:21.258 TestArrayFill EURUSD,H1: Время заполнения через ArrayInitialize + ArrayCopy = 113
2018.09.04 11:08:21.258 TestArrayFill EURUSD,H1: Время заполнения через ArrayFill = 78
Файлы:
 
Nikolai Semko:

Когда мне нужно заполнить часть большого массива одним значением Z я использую конструкцию:


Многие скажут - зачем так сложно, можно ведь проще:

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

Пару лет назад я уже писал по этому вопросу в СД. На что получил ответ, что мол спасибо, проблему нашли и исправили, в следующем билде будет нормально.

Но проблема остается.

Причем тот же самый тест в MT4:

Может здесь стоит отметиться с этим?

 
Artyom Trishkin:

Может здесь стоит отметиться с этим?

Ничего себе особенность и тонкость!
Важная стандартная функция работы с массивами самого быстрого в мире языка алготрейдинга работает в 4 раза медленнее, чем на устаревшем языке MQL4.
Только здесь.

Явный же бажище. 
Представляете, как многие программы залетают, когда его исправят.
 
Nikolai Semko:

Ничего себе особенность и тонкость!
Важная стандартная функция работы с массивами самого быстрого в мире языка алготрейдинга работает в 4 раза медленнее, чем на устаревшем языке MQL4.
Только здесь.

Явный же бажище. 
Представляете, как многие программы залетают, когда его исправят.

Добро.

Но вот как особенность в данный момент - разве плохо?