Пользовательские символы. Ошибки, баги, вопросы, предложения. - страница 48

 
Stanislav Korotky #:

Да, надо будет написать скрипт. Плохо, что стандартный диалог это не делает.

В каком порядке потом делать импорт баров и тиков из csv - сперва тики, потом бары пойдет?

Только bin-файл тиков через FileSave.

 
fxsaber #:

Только bin-файл тиков через FileSave.

А что с ним потом делать? Еще одну утилиту писать для загрузки?

Короче, я написал утилиту для выгрузки истории тиков и баров в csv-файлы. Выгрузил все символы. Создал новые кастом-символы с параметрами EURUSD и проимпортировал в них csv-файлы. Потом проверил - полное совпадение тиков и баров с исходными символами, но тестирование по ним проходит по-другому - с другими проблемами.

 
Stanislav Korotky #:

А что с ним потом делать? Еще одну утилиту писать для загрузки?

У меня есть инструментарий. Если у меня будет работать, то проблема в Вашем коде, если нет - MT5.

 
fxsaber #:

У меня есть инструментарий. Если у меня будет работать, то проблема в Вашем коде, если нет - MT5.

Пока не получается воспроизвести те же проблемы на символах-копиях, полученных экспортом/импортом. Полагаю, без разницы в бинарном или csv-формате делать экспорт/импорт.

Может быть, играют роль какие-то настройки, которые переносятся библиотекой Symbol не так, как кнопкой Create Custom Symbol в диалоге Символы.

Пока единственный способ получения ошибки - генерация продуктом.


Попутно обнаружил (не знаю, насколько относится именно к кастом-символам или всем символам в тестере), что TimeCurrent и TimeTradeServer возвращают только время основного рабочего инструмента, выбранного в тестере, а все дополнительные символы, тики и котировки которых запрашиваются из кода (в результате чего они добавляются в окно Обзора рынка в тестере, и открываются их чарты), - увы не влияют на ход времени. Я полагал, что время должно браться максимальное из всех тиков/баров по выбранным инструментам, как происходит в терминале.

 
Stanislav Korotky #:

TimeCurrent и TimeTradeServer возвращают только время основного рабочего инструмента, выбранного в тестере

Должен реагировать на таймер и Sleep.

 
fxsaber #:

Должен реагировать на таймер и Sleep.

У меня нет ни того, ни другого.

Эксперт просто добавляет в Обзор рынка тестера 3 инструмента, и я рассчитывал, что время из любого следующего тика, любого из инструментов должно становиться новым TimeCurrent, если это время больше предыдущего.

 
Stanislav Korotky #:

У меня нет ни того, ни другого.

Эксперт просто добавляет в Обзор рынка тестера 3 инструмента, и я рассчитывал, что время из любого следующего тика, любого из инструментов должно становиться новым TimeCurrent, если это время больше предыдущего.

Вы же время замеряете в OnTick основного символа. Поэтому оно не может не равняться SymbolInfoTick(SymbolBase).

 
fxsaber #:

Вы же время замеряете в OnTick основного символа. Поэтому оно не может не равняться SymbolInfoTick(SymbolBase).

Бинго. Спасибо. Относительно этого - мой косяк.

Но с unsync таймер не помогает.
 
Stanislav Korotky #:

Может быть, играют роль какие-то настройки, которые переносятся библиотекой Symbol не так, как кнопкой Create Custom Symbol в диалоге Символы.

Попробуйте использовать третий аргумент. В библиотеке поиском можно видеть, как задается.
Документация по MQL5: Пользовательские символы / CustomSymbolCreate
Документация по MQL5: Пользовательские символы / CustomSymbolCreate
  • www.mql5.com
CustomSymbolCreate - Пользовательские символы - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber #:
Попробуйте использовать третий аргумент. В библиотеке поиском можно видеть, как задается.

Вроде помогло. Завтра потестирую еще. Похоже есть побочные эффекты (типа TickValue почему-то становится 0 и пр).

Зеленое добавил, красное убрал:

const SYMBOL Symb(_SymbolName, NULL, _Symbol);
// Symb.CloneProperties(_Symbol);

В очередной раз напоминание, что устанавливать свойства символов индивидуально противопоказано.

Конечно, все равно интересно, в чем там дело, что такие глюки.