Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 - страница 96
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да, описания действительно нет. Думаю, добавят, когда увидят этот вопрос. С ордером связано просто: когда происходит чтение истории счета, то кроме ордеров разного типа (buy stop, buy limit и т. д.) можно наткнуться на балансовую операцию. Такой подход позволяет правильно рассчитывать торговую прибыль, отсеивая пополнения/снятия.
спасибо...
Мы серьезно оптимизировали поднятие и синхронизацию баз данных в MetaTrader 5 build 1968 (бета уже доступна).
В 5 раз быстрее базы поднимаются при холодном запуске и в 1.5 раза быстрее при горячем.
Причем в горячем режиме подъем баз стал быстрее, чем в четверке.
Да, спасибо! Реально заметил и замерил значительное увеличение быстродействия в сложных ресурсных индикаторах.
Но правда заметил странные нестабильные подвисания. Локализовать их пока не удалось. И работа дебага как-то изменилась. Иногда приходится ждать когда начнет работать сама программа. Возможно это как-то связано с подкачкой истории.
win7 64, mt5 1968 после этого билда все открепленные графики поломались:
все индикаторы отображаются с минутной задержкой или не отображаются вообще,
объект chart не отрисовывается
обработчики событий нажатий кнопок не работают
всё висит, думает, задержка более минуты...
Как откатить на предыдущий билд?
Компилятор выдаёт очень скудную информацию об ошибках в шаблонных классах. Не указываются значения типов, с которыми раскрывается данный шаблон. Это очень сильно затрудняет поиск ошибки в коде. Вот пример:
Не имея информации о том, какими типами инициирован шаблон, сложно понять, из какой части программы он мог быть вызван. Прошу расширить описание ошибок, добавив туда описание типов шаблона.
А по хорошему, нужно также указывать ссылку на то место, откуда был инициирован шаблон.
Например в VS всё очень легко и удобно, можно увидеть не только место вызова текущего шаблона, но и весь предыдущий маршрут перехода по шаблонам (при его наличии). От начальной точки иницирования типами и до места возникновения ошибки. А в MQL всё очень тяжело с этим.
win7 64, mt5 1968 после этого билда все открепленные графики поломались:
все индикаторы отображаются с минутной задержкой или не отображаются вообще,
объект chart не отрисовывается
обработчики событий нажатий кнопок не работают
всё висит, думает, задержка более минуты...
Как откатить на предыдущий билд?
У меня тоже странные ощущения от 1968.
Вот тут есть архив старых билдов.
Предлагаю ввести в MQL возможность использования r-value аргумента функции, подобно тому как это существует в C++:
Это необходимо в шаблонах для возможности перегрузить варианты с l-value и r-value, и тем самым создавать универсальные решения для любых типов данных:
Хотя тут можно обойтись и простой передачей по значению.
В MQL же передавать по значению классы и структуры нельзя, и это делает невозможным создание гибких универсальных контейнеров. Приходится городить отдельно вариант для структур/классов, и отдельно - для простых типов и указателей, могущих передаваться как угодно:
Поэтому требуется либо возможность передавать все типы по значению, либо возможность задания аргумента rvalue. В идеале - и то, и другое.
Предлагаю ввести в MQL возможность использования r-value аргумента функции, подобно тому как это существует в C++:
Это необходимо в шаблонах для возможности перегрузить варианты с l-value и r-value, и тем самым создавать универсальные решения для любых типов данных:
Хотя тут можно было бы обойтись и простой передачей по значению.
В MQL же передавать по значению классы и структуры нельзя, и это делает невозможным создание гибких универсальных контейнеров. Приходится городить отдельно вариант для структур/классов, и отдельно - для простых типов и указателей, которые могут передаваться как угодно:
Поэтому требуется либо возможность передавать любые типы по значению, либо возможность задания аргумента rvalue. В идеале - и то, и другое.
В MQL по значению ссылочные типы передавать можно:
Однако Вы правы в том, что разделение на ссылочные и значимые типы делает написание универсального generic-контейнера весьма сложным. Т.к. оператор delete применим исключительно к ссылочным типам, а generic не знает ссылочные тип он хранит или значимый, поэтому и использовать его он не может.
Можно просто нажать на "Обновить", чтобы увидеть, что чарт с индикатором завис.
ЗЫ Лог работы индикатора на одном пустом чарте.
На Терминале никаких действий не совершалось.
В MQL по значению ссылочные типы передавать можно:
Так у вас же по ссылке передаётся. Указатель просто преобразовывается в ссылку и всё.
Вот если бы было
void foo(CClass c) { }
тогда другое дело.
Vasiliy Sokolov:
Т.к. оператор delete применим исключительно к ссылочным типам, а generic не знает ссылочные тип он хранит или значимый, поэтому и использовать его он не может.
delete применим к указателям, поэтому с этим проблем вообще нет. Оборачиваем его в отдельную шаблонную функцию, принимающую указатель, а для остальных типов вызывается шаблон-пустышка: