Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
https://www.mql5.com/ru/blogs/post/755348
Честно говоря, ожидал большей производительности от Virtual. Видимо, непродуманная в этом плане архитектура.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: Virtual
fxsaber, 2023.12.10 13:33
Выглядит, как самойбийство такая конструкция на каждом тике в мультивалютном советнике.
Возможность избавиться от дорогих string в пользу SymbolID дала десятикратное ускорение расчета мультивалютников в MT5-тестере.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: Virtual
fxsaber, 2018.11.16 01:33
Любители сеточных ТС могут увеличить скорость оптимизации почти на порядок, если будут использовать Virtual.
До теста пришла в голову идея, как ускорить Virtual, чтобы количество ордеров почти не влияло на производительность.
Спустя пять лет взялся за реализацию. Тестовый советник.
Этот советник открывает inAmount-количество позиций в самом начале и больше ничего не делает.
Сравнительная таблица длительности расчетов.
Получилось.
Такой же трюк не сработает для мультивалютного варианта?
Такой же трюк не сработает для мультивалютного варианта?
Сработает, но с меньшим эффектом. Оставил оба режима, потому что сложно предсказать, для каких целей может быть выгоднее один режим расчета, а для каких - другой.
Баг на граничных значениях:
Открывает лимитные ордера с ТП=СЛ=цене открытия.
Тест на ДЦ MetaQuotes Demo по EURUSD
Тестер МQ: баланс 999588350.00 LengthTime = 03:43:30.820
Виртуальный тестер:
Ч
Число сделок больше, время жизни всех сделок = 0, т.е. закрылись сразу после активации лимитных ордеров по другой цене. Баланс другой.
Сделал корректировки:
И
Время жизни сделок стало не нулевым.
И при создании объекта Orders считал макс число для аккаунта и установил 0 для счетчикаДалее выяснил, что тестер МУ отклоняет сделки по макс. числу лимитных ордеров для аккаунта = 200
Правки
Стало точно как в тестере МQ
Виртуальный тестер:
Число сделок больше, время жизни всех сделок = 0, т.е. закрылись сразу после активации лимитных ордеров по другой цене.
Виртуал правильно сделал - открыл и сразу закрыл.
В Тестере баг. На тике срабатывания лимитника открывается позиция, у которой SL удовтлетворяет текущему тику. Тестер/Терминал ее не закроет на этом тике по SL. При этом вручную можете его закрыть на этом же тике. Т.е. автоматический SL не срабатывает, а ручной - без проблем.
В Virtual этого бага нет.
Стало точно как в тестере МQ
Не уверен, что нужна такая цель.
Т.е. автоматический SL не срабатывает, а ручной - без проблем.
Часто практикуются скрытые SL. Так вот оказывается, что скрытый (сам делает OrderClose при достижении) будет в Тестере срабатывать чаще, чем явный SL.
Т.е. несовпадение результатов в Тестере при переходах между режимами скрытый/явный SL.
А так же
В итоге получим точное совпадение с тестером МQ по всем перечисленным ниже тестам. Анимация результатов обоих тестеров: (тот, что с комментариями - тестер MQ, отличия только из за перестановки строк сделок закрытых на одной миллисекунде)
Думаю можно такой советник считать полной проверкой всех возможных вариантов торговых операций (кроме OrderCloseBy - может вы добавите такую проверку?)
По дате обновления вижу, что вы еще не добавили в свой код пересчет прибыли в валюту депозита, комиссии в % за лот, ежедневные свопы по текущей цене, о которых писал тут https://www.mql5.com/ru/blogs/post/755500.
Вот моя последняя версия библиотеки с ними и с сегодняшними корректировками.
Стало точно как в тестере МQ
Не уверен, что нужна такая цель.
Лучше конечно как правильнее. Можно сделать переключатель правильно/как в теcтере MQ. Думаю второй вариант тоже будет интересен.