Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 - страница 112
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подскажите, как правильно воспроизвести отсутствие разброса? У меня не получается (Amount = 5)
Фоновые приложения?
Чистота экспериментов сейчас сложно поддерживается.
Cx стейты надо отключать в биосе, чтобы процессор не игрался бустом частоты. Но и это не всегда помогает.
Отключив C стейты, вы получите стабильную рабочую частоту и только тогда можно сказать, что первое условие для тестов производительности соблюдено:
В обычном случае у вас там плавающая частота, растущая с запозданием от появления реальной нагрузки. Это полностью убивает замеры.
Конечно, на ноутбуке нельзя отключать Cx стейты, иначе он от батареи работать будет очень мало.
Плюс конечно фоновая активность, включая антивирусы.
Возиться с этим точно не будете, но есть возможность для очень значительного ускорения
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: Virtual
fxsaber, 2018.11.16 01:50
Основная мысль заключается в том, что по приходу нового тика можно сразу сказать, будет ли какое-то исполнение среди всей пачки текущих ордеров или нет. Сразу - не проверяя каждый из пачки.
Что же касается вычисления эквити и профита каждого ордера на каждом тике, то это делать только по запросу - AccountEquity, OrderProfit и т.д.
Когда же с ордерами что-то происходит (выставили, модифицировали, исполнился и т.д.), то хранить их в отсортированном виде по Bid/Ask-ценам.
Все в купе позволит почти полностью избавиться от зависимости с количеством одновременных ордеров. Тестеру будет ровно, 5 или 105 ордеров сейчас висит. Скорость будет отличаться незначительно.
Для себя такое не делал, т.к. с увеличением позиций не сильно замедляется.
Добавьте, пожалуйста, в MQL аналог функции typeid из С++, позволяющий получить информацию о полиморфном типе объекта (имя типа и его хэш-код):
Это необходимая вещь в ООП. Иначе приходится в каждом классе прописывать виртуальные методы для получения подобной информации, что выглядит костыльно и ненадёжно, учитывая что эта информация есть в системе.
Снова поп поводу каст. символов. Вчера был закрыт график синт. инструмента, терминал не закрывался. Сегодня открыл график, подождал несколько минут (в надежде, что он сам обновится, но этого не произошло). Принудительно обновил.
Снова поп поводу каст. символов. Вчера был закрыт график синт. инструмента, терминал не закрывался. Сегодня открыл график, подождал несколько минут (в надежде, что он сам обновится, но этого не произошло). Принудительно обновил.
Логи терминала покажите, пожалуйста
Логи покажите
Добавьте, пожалуйста, в MQL аналог функции typeid из С++, позволяющий получить информацию о полиморфном типе объекта (имя типа и его хэш-код):
Это необходимая вещь в ООП. Иначе приходится в каждом классе прописывать виртуальные методы для получения подобной информации, что выглядит костыльно и ненадёжно, учитывая что эта информация есть в системе.
Так можно ведь
Правда я бы не спешил пользоваться, не знаю как в мкл, но в плюсах получать имя типа - бесполезное занятие, идентичность имени не гарантируется для одного и того же объекта и может совпадать для разных типов, ерунда в общем.
Хэш-код тоже не далеко ушёл:
Returns an unspecified value such that for all type_info objects referring to the same type, their hash_code() is the same.
No other guarantees are given: type_info objects referring to different types may have the same hash_code (although the standard recommends that implementations avoid this as much as possible), and hash_code for the same type can change between invocations of the same program.
Хотя так нормально, вроде: if(typeid(Q) == typeid(q)) {}, но в мкл недоступно.
ЗЫ: хотя для if'ов есть же аналог dynamic_cast.
Воспроизведён ли вот этот баг?
2 одиночных запуска тестирования Вашего эксперта с одними и теми же входными параметрами дают разные результаты.
Вы сами пробовали разобраться с этим?
То есть, недостающие данные с прошлого запуска посчитались
но не отобразились на открытом графике?
PS Установленный лимит 50 тыс баров на графике явно мал для Вашего случая
Это логи со старта терминала или после принудительного обновления данных?