Обсуждение статьи "Сравнение MQL5 и QLUA - почему торговые операции в MQL5 до 28 раз быстрее?"
Пожалуйста, сделайте еще один тест скорости MT5 на реальном счете
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
fxsaber, 2016.09.13 11:11
если через OrderSendAsync отправить два лимитника (BuyLimit1_price < BuyLimit2_price) внутрь спреда, то будет порождено биржей два подряд идущих тика с улучшением bid-цены в одно и то же время (с точностью до 1мс)?
Комментарии политических хейтеров на эту статью

- smart-lab.ru
//--- пропускаем первые тики для первичной очистки очереди и разогрева tickcounter++; if(tickcounter<ExtSkipFirstTicks) return;
Требуется пояснение про влияние очереди и разогрева на производительность.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Renat Fatkhullin, 2016.09.01 17:53
Не МТ5 теряет, а Plaza II. Именно у нее удивительный для 2016 года механизм снапшотинга на подтверждениях в 10 мс. То есть, она отдает подтверждения блоками раз в 10 мс.
На следующей неделе Открытие включит режим снапшотинга Плазы в 3 мс и тем самым мы еще выиграем в среднем от 5 до 7 мс при исполнении.
А сам МТ5 на внутренний процессинг, включая свой шлюз, тратит меньше 1 мс. В новых версиях еще меньше будет тратить за счет очередных оптимизаций процессов на пару сотем микросекунд.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Renat Fatkhullin, 2016.09.01 18:11
Важный вывод про скорость самого языка MQL5: когда речь идет о миллисекундах и тем более о микросекундах, скорость самого языка автоматизации начинает занимать существенную часть в латенси.
Если трейдер использует интерпретируемые языки типа QLUA/EasyLanguage, то он просто на обвязке теряет миллисекунды и даже не в курсе этого. Не говоря уже о том, что его программа из ядра платформы может получать уведомления об активности на рынке тоже с существенными задержками в сотни микросекунд и даже миллисекунд.
Именно поэтому мы столько сил тратим на оптимизацию MQL5 и шаг за шагом вылизываем узкие места, выигрывая десятки и сотни микросекунд.
Недавно мы показали скорость отображения данных в трех терминалах Quik, MetaTrader 5 и SmartX на MOEX.
Смотреть открытие рынка надо с 00:50 примерно: победитель сразу виден
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Renat Fatkhullin, 2016.09.01 20:29
у нас в чистом виде transaction based механизма доставки данных в отличие от конкурентов с snapshot based. Именно поэтому у нас все одиночные транзакции(тики - это тоже транзакции) доставляются мгновенно и без задержек.
Например, у Квика графики вообще живут своей снапшотовой жизнью в отрыве от потока тиков. Именно поэтому там графики визуально тормозят по сравнению с МетаТрейдером. Стакан в Квике вообще до 5 раз медленнее обновляется по сравнению с MT5 - мы это точно замеряли. Скорее всего обновления стакана там тоже снапшотами, чтобы не перегружать терминал и инфраструктуру.
А мы честно стримим все данные транзакционно без задержек и снапшотов.
Мы записали на видео все три теста одним роликом, чтобы было видно:
- торговые операции проводились на одном и том же реальном счете;
- и на одном и том же инструменте Si-9.16;
- на одном и том же компьютере;
- торговые операции проводились в одно и то же время;
- в одних и тех же рыночных условиях;
- скорости обновления стаканов замерялись на одном и том же инструменте и в одно и то же время;
- сетевая задержка до серверов Открытия была 2 мс.
Это, к сожалению, не правда. Надо было одновременно замерять и на видео показать.
А то можно MT5 на спокойном рынке запустить, а QUICK - на новостях. И показатели разойдутся совсем.
Требуется пояснение про влияние очереди и разогрева на производительность.
Если посмотрите это видео, то увидите, что перед началом торговой сессии проходят несколько одиночных обновлений стакана. Поэтому скрипт пропускает первые N тиков, чтобы убедиться, что пошел настоящий плот поток заявок в стакане. И только после этого начинает считать тики.
Это, к сожалению, не правда. Надо было одновременно замерять и на видео показать.
Все тесты снимались последовательно одним куском за один раз чтобы соблюсти чистоту замеров.
Тогда выводы, касаемые стаканов, логично могут быть подвержены сомнению.
Если посмотрите это видео, то увидите, что перед началом торговой сессии проходят несколько одиночных обновлений стакана. Поэтому скрипт пропускает первые N тиков, чтобы убедиться, что пошел настоящий плот поток заявок в стакане. И только после этого начинает считать тики.
На видео показано начало сессии. А на видео из статьи - самый "сок". Да и
input ulong ExtSkipFirstTicks=10; // количество пропускаемых тиков на старте
количество маловато для начала сессии. Раскройте, пожалуйста, что такое "очередь" и "разогрев".

- Бесплатные приложения для трейдинга
- Форексный VPS бесплатно на 24 часа
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Сравнение MQL5 и QLUA - почему торговые операции в MQL5 до 28 раз быстрее?:
Многие трейдеры зачастую не задумываются над тем, как быстро доходит их заявка до биржи, как долго она там исполняется и когда торговый терминал трейдера узнает о результате.
В результате они не знают, что легко могут улучшить качество исполнения своих сделок за счет более быстрой реакции и скорости проведения транзакций.
12 сентября 2016 года были проведены три замера скорости на реальном счете БД "Открытие" на MetaTrader 5 build 1415 и Quik 7.2.23 в одно и то же время. Каждый тест был призван измерить конкретную скоростную характеристику, важную с точки зрения алгоритмического трейдинга:Результаты всех трех тестов собраны в сводной таблице, детальные результаты по каждому тесту представлены ниже отдельными разделами этой статьи.
Как видно из таблицы, MetaTrader 5 опережает по всем трем тестам со значительным отрывом. Желающие могут самостоятельно провести подобные испытания с помощью приложенных исходных кодов. Само тестирование представлено на видео ниже.
Автор: MetaQuotes Software Corp.