MetaQuotes Software
MetaQuotes Software Блог компании MetaQuotes Software
12 сентября 2016, 15:50

Cравниваем MQL5 и QLUA - почему роботы на MQL5 до 28 раз быстрее?



Многие трейдеры зачастую не задумываются над тем, как быстро доходит их заявка до биржи, как долго она там исполняется и когда торговый терминал трейдера узнает о результате.

В результате они не знают, что легко могут улучшить качество исполнения своих сделок за счет более быстрой реакции и скорости проведения транзакций.

12 сентября 2016 года были проведены три замера скорости на реальном счете БД «Открытие» на MetaTrader 5 build 1415 и Quik 7.2.23 в одно и то же время.

Каждый тест был призван измерить конкретную скоростную характеристику, важную с точки зрения алгоритмического трейдинга:
  1. Тестирование синхронных операций  — серия из 10 синхронныхпоследовательных торговых операций Buyс подтверждением успешности выполнения каждой транзакции на бирже. Последующая операция не производится, пока не будет  получено подтверждение от торгового сервера, что операция прошла/не прошла на бирже. Скорость выполнения зависит от всей цепочки терминал — торговый сервер — биржа — торговый сервер — терминал. Чем меньше будет среднее время торговой синхронной операции, тем лучше.
  2. Тестирование асинхронных операций — серия из 10 асинхронныхторговых операций Buyбез подтверждения успешности выполнения транзакции. Это чистый тест на скорострельность, измеряющий скорость отправки заявок на биржу. Тут также лучшим будет тот терминал, у которого время выполнения 10-ти асинхронных покупок будет меньше.
  3. Тестирование обновления стакана заявок — замер скорости изменений заявок в Стакане. Это простой подсчет количества тиков (обновлений) Стакана в единицу времени. Чем чаще приходят котировки с биржи в торговый терминал, тем быстрее будет обновляться Стакан. Следовательно, чем больше тиков за секунду поступает в программу автоматической торговли, тем быстрее она может среагировать на изменения в структуре спроса/предложения на рынке. Лучшим будет тот терминал, в котором скорость обновления Стакана выше.

Условия испытаний

Оба терминала установлены на арендованном сервере VPS в Москве, как и сами торговые серверы БД «Открытие». Торговля велась на одном и том же реальном счете в срочной секции Московской биржи инструментом Si-9.6.

Мы записали на видео все три теста одним роликом, чтобы было видно:

  1. торговые операции проводились на одном и том же реальном счете;
  2. и на одном и том же инструменте Si-9.16;
  3. на одном и том же компьютере;
  4. торговые операции проводились в одно и то же время;
  5. в одних и тех же рыночных условиях;
  6. скорости обновления стаканов замерялись на одном и том же инструменте и в одно и то же время;
  7. сетевая задержка до серверов Открытия была 2 мс.

Результаты сравнения скорости операций: MetaTrader 5 vs QUIK

Результаты всех трех тестов собраны в сводной таблице, детальные результаты по каждому тесту представлены ниже отдельными разделами этой статьи.

Тест                   MetaTrader 5    QUIK      Выигрыш MT5
Синхронные операции        9.59 ms   277.80 ms  28.96 раз
Асинхронная                0.09 ms     0.30 ms   3.33 раза
Обновлений стакана        42.7 в сек   8.40      5.08 раза

Как видно из таблицы, MetaTrader 5 опережает по всем трем тестам со значительным отрывом. Желающие могут самостоятельно провести подобные испытания с помощью приложенных исходных кодов. Само тестирование представлено на видео выше.

 

Видео сравнения скорости торговых операций


MetaTrader 5 быстрее QUIK в торговых операциях до 28 раз

Проведенные замеры показали, что язык MQL5 значительно опережает QLUA как в проведении торговых операций на Московской бирже, так и просто в сканировании стакана заявок. Торговые роботы, написанные на языке MQL5, не только считают в 50-100 раз быстрее, но и торгуют до 28 раз быстрее. И при этом вам не нужно изобретать свои велосипеды — приводы, коннекторы и т.д. К вашим услугам готовые торговые классы стандартной библиотеки и масса статей по автоматизации трейдинга.

Надежный торговый робот просто обязан проверять результаты отправки торговых операций — то есть, дожидаться ответа от торгового сервера. Тесты доказали, что MetaTrader 5 значительно быстрее в синхронных операциях. Если же вам нужны асинхронные операции — то и здесь скорость в 3 раза выше. Требуется анализировать поток заявок — и тут MetaTrader 5 даст вам преимущество по сравнению с QUIK за счет в 5 раз более быстрого потока котировок без снапшотов.

Проведенные испытания показали, что для создания быстрых автоматических торговых систем язык MQL5 подходит как нельзя лучше. Никакие коннекторы и библиотеки, подключаемые к терминалу QUIK для ускорения расчетов, не спасут: узким местом будет являться само время проведения торговых операций.

Теперь рассмотрим скучные, но обязательные детали тестирования.

 

Детальные отчеты по сравнению терминалов

Программа на QLUA при замере времени обращается к системному таймеру операционной системы, который по умолчанию имеет погрешность измерения в пределах в 10…15.6 миллисекунда (чаще всего — 15.6 мс). Поэтому мы повысили точность замеров времени в QLUA простым повышением точности системного таймера до 1 ms.

Сделано это с помощью скрипта на SpeedupSystemTimer.mq5, который вызывает функцию timeBeginPeriod системной библиотеки Winmm.dll

#import "winmm.dll"
int timeBeginPeriod(uint per);
#import

void OnInit()
  {
   timeBeginPeriod(1);
  }

void OnTick()
  {
  }

Этот скрипт мы запустили перед началом тестов в терминале MetaTrader 5 и разрешив вызов DLL, в результате чего обеспечили погрешность измерений операций в терминале QUIK не более 1 миллисекунды.

В языке MQL5 есть готовая функция GetMicrosecondCount(), поэтому замеры в терминале MetaTrader 5 делались с точностью 1 микросекунда (1 миллисекунда=1000 микросекунд).

#1 Тестирование скорости синхронных торговых операций

Тестирование заключалось в измерении скорости синхронных торговых операций — это значит, что каждая последующая торговая операция совершалась только после получения от торгового сервера подтверждения, что предыдущая транзакция была успешно проведена с полным подтверждением от биржи.

Сначала была проведена серия торговых операций через терминал MetaTrader 5 build 1415, затем такая же серия была произведена через терминал QUIK версии 7.2.23.

Суть испытания заключается в измерении среднего времени 10 синхронных операций покупки по рынку 1 лотом:

  • SyncTradeTest.mq5
  • SyncTradeTest.lua

Измерение времени, затраченного на синхронную транзакцию, проводилось следующим образом:

  • В языке MQL5 есть синхронная функция OrderSend, а время легко замерить в начале и конце серии сделок.

  • В языке QLUA нет синхронной торговой функции и поэтому статус сделки приходится отлавливать отдельно. Время старта торговой операции замерялось непосредственно перед вызовом sendTransaction () с помощью функции os.closck().

    Успешное выполнение транзакции отслеживалось во встроенном обработчике OnOrder() на первом вызове в момент, когда приходило событие о совершении сделки на бирже. Разница между этими событиями и есть время, потраченное на выполнение торговой операции.
Результаты замеров показывают, что в синхронных операциях MetaTrader 5 до 28 раз быстрее, чем QUIK.

 

#2 Тестирование скорости асинхронных торговых операций

В этом тесте все значительно проще. Десять раз подряд на биржу отправляется приказ на покупкуодного контракта фьючерса Si-9.16. Это позволило нам измерить среднее время асинхронной передачи в QLUA с точностью 1 ms / 10 = 0.10 ms. В MetaTrader 5 погрешности нет, так как в нем используется микросекундный таймер.

Мы не ждем никакого результата наших операций, за каждой отправкой заявки торговому серверу сразу же делается отправка новой заявки:

  • AsyncTradeTest.mq5
  • AsyncTradeTest.lua
Как видно из результатов, в асинхронных операциях MetaTrader 5 в 3.33 раза быстрее, чем QUIK.

 

#3 Тестирование обновления стакана заявок

Ряд торговых стратегий строится на анализе потока заявок в стакане. В языке MQL5 событие изменения стакана можно отлавливать в обработчике OnBookEvent(), а в QLUA через OnQuote().

Тесты скорости обновления стаканов проводились с помощью следующих программ, которые доступны в приложенном ZIP-архиве:

  • MarketUpdateTest.mq5
  • MarketUpdateTest.lua

В результате последовательного запуска этих программ на двух разных терминалах было зафиксировано, что стакан в MetaTrader 5 обновляется примерно в 5 раза чаще, чем в QUIK. Скорее всего QUIK просто лимитирует частоту обновлений стакана и не показывает все изменения.

Так как все исходные коды приложены тут же, любой желающий может самостоятельно воспроизвести эти тесты и убедиться лично в представленных результатах.

 

Почему такая разница?

Мы фанатично относимся к производительности и боремся за каждый десяток микросекунд, годами оптимизируя торговую платформу.

Именно поэтому мы показываем потрясающую производительность встроенного алгоритмического языка MQL5 и скорость торговых транзакций.
202 Комментария
  • ICWiener
    12 сентября 2016, 16:04
    Спасибо
  • St.Vitaliy
    12 сентября 2016, 16:20
    В МТ5 можно загрузить сторонние котировки?
  • Chepell
    12 сентября 2016, 16:21
    build 1415 мне как клиенту открытия не доступен. Более того, я даже у вас на сайте релиза не вижу
    www.metatrader5.com/ru/releasenotes
    • Евгений
      12 сентября 2016, 16:34
      MetaQuotes Software, вы делаете полную ненужную ерунду. Брокерам не интересны клиенты, дрочащие над скоростью клика мышки. Эти лодоманы ничего не заработают, и сольют в первые месяцы. Деньги идут от игроков, которые годами трудятся. Для них ваша скорость не решает ничего. Они дают сигналы несколько раз в неделю.
        • Александр
          12 сентября 2016, 17:02
          MetaQuotes Software, Смешно. Если бы трейдеры выбирали, квик бы не стоял у всех поголовно брокеров. Есть масса более удобных систем.
          -начнут терять клиентура на Квике.
          Не будут терять клиента на квике, потому что вы не предоставляете ничего потенциально нового.
          Клиентов больше будет, скорость ниже будет.

            • Александр
              12 сентября 2016, 17:15
              MetaQuotes Software, транзак, smart com, alor и т. д.
              По изучайте рынок.
              -российских брокеров не более 50-100 клиентских счетов.
              С таким кол-вом счетов никакого бизнеса не будет. Они тем более не потянут mt.
        • Max Xaser
          12 сентября 2016, 23:00
          MetaQuotes Software, скорость — это хорошо. Проблема МТ5 в сравнении с Квиком в другом: Квик позволяет торговать всё сразу в одном терминале, МТ5 этого не может. МТ5 он какой-то «однобокий», хоть и быстрее. Когда эти терминалы сравнятся по функционалу, тогда скорость МТ5 будет решающим фактором однозначно.
            • Max Xaser
              12 сентября 2016, 23:07
              MetaQuotes Software, 
              Странно конечно говорить о сравнении функционала.
              отчего же?! отнюдь! Я не скальпер, мне, слава Богу, на стакан по-боку. Но в терминале у меня только срочка! А что в Квике?
        • oreshkinalexey
          13 сентября 2016, 01:26
          MetaQuotes Software, несмотря на убогость и полный проигрыш квика перед мт, клиенты на мт не потянуться. Причина первая — кухонная история мт с форексом и виртуальным дилером известна всем и ооооочень долго не канёт в небытие, причина 2 — два единственных брокера, открывашка и бкс это не те брокеры где есть смысл держать серьёзные суммы и это только то что актуально лично для меня. Возможность открепить окна, опционы, разные терминалы для каждой секции биржи — это также всё минусы метатрейдера.
            • oreshkinalexey
              13 сентября 2016, 01:58
              MetaQuotes Software, у меня нет такой статистики, и я согласен с тем что народ переходит понемногу на мт, так как мт5 действительно удобнее почти во всём, кроме единого счёта, окон и опционов, но у большинства и счета то копеечные, пару сотен тысяч может быть и многие из этого большинства даже договоров с брокером не читали. Но клиенты со счетами чуть выше мелкого — хотя бы пару десятков мио рублей обращают внимание на все мелочи и им мт5 нивкакую не подходит — сужу чисто по себе и по своему окружению из тех кто также занимается торговлей
                • oreshkinalexey
                  13 сентября 2016, 02:31

                  MetaQuotes Software, лично я вручную не торгую, но большинство из моих знакомых да, торгуют вручную. Их по этой причине на мт вообще никогда не перетащить будет и квика достаточно.

                  Мелочами вы считаете брокерский договор в открытии? вы его сами то читали? под такой договор подпишутся только начинающие. Про БКС ничего не знаю, но им не доверил бы ни копейки.

                  Единый счёт… ну да соглашусь что это вообщем то мелочи, не стало бы важным критерием отказа от платформы.

                  Опционы — их нет, значит нет смысла вообще говорить о мт5 как о достойной платформе.

                  Окна-… да тоже по большому счёту пофигу

                  Ваша история с кухнями и виртуальным дилером — из-за этого я никогда не перейду на ваш софт крупными деньгами, хотя терминал реально лучше квика, я с этим не спорю и тестирую все стратегии я сначала у вас, так как быстрее пишется и есть тестер, а после уже загоняю всё на луа.

                    • oreshkinalexey
                      13 сентября 2016, 02:53
                      MetaQuotes Software, скажу проще — мне всё равно на массы, которые к тому же сливают, я говорю про то что важно лично для меня. Я вижу что мт5 реально удобнее квика и я работаю в обоих платформах и все тесты гоняю сначала здесь а потом пишу на луа. Но к примеру теже опционы вы обещаете уже несколько лет сделать а их нет, как нет и других брокеров: Из брокеров конкретно меня интересуют только сбербанк и промсвязьбанк. Остальная мелочь меня также не волнует.
    • Александр
      12 сентября 2016, 16:36
      MetaQuotes Software, -в 5 раз чаще стакан обновляется
      Со стаканом согласен, в арке сами говорят мы стакан медленный создали, с задержкой в 20 миллисекунд.
      -МТ5 в 28 раз быстрее на синхронных операциях
      Это зависит от загруженности сервера.
      Вы уверены, что загруженность сервера метатрейдера и квика одинаковы?

    • Александр
      12 сентября 2016, 16:51
      MetaQuotes Software, Вы издеваетесь? У вас же не просто труба до сервера, у вас еще бэкофис для брокера есть. Зачем хрень то нести? Да и труба может заполнится.
        • Александр
          12 сентября 2016, 16:59
          MetaQuotes Software, У нас биржа от заявок перегружается, видать находят где-то деньги трейдеры :) И у вас же есть висюны на открытии сессии :)
            • Александр
              12 сентября 2016, 17:08
              MetaQuotes Software, на форуме писали люди про тормоза, знаете я им верю.
                • Александр
                  12 сентября 2016, 17:17
                  MetaQuotes Software, мне не зачем вам что-то доказывать. О тормозах я говорил только с точки зрения начала сессии. При этом я не стремлюсь доказать что-то. Я даже могу предположить, что это проблемы биржи и не постоянны.
        • Александр
          12 сентября 2016, 17:05
          MetaQuotes Software, А сколько раз обновляется стакан в плазе?
          У вас походу тоже получаются задержки и вы тоже не выдаете все изменения в стакане? или выдаете все изменения в стакане?
    • swerg
      12 сентября 2016, 19:42
      MetaQuotes Software> Скорость отработки торговых заявок от загруженности нашего торгового сервера практически не зависит и не должна зависеть. Это прямая труба на биржу.

      Даже для акций/облигаций?!
        • swerg
          12 сентября 2016, 20:05
          MetaQuotes Software> Есть есть шлюзы со внешним исполнением, то торговый сервер является лишь быстрой тупой трубой, у которой главная задача — быстро передать данные.

          Ответ не понял, спрошу иначе: риски для акций/облигаций — где, когда и кто считает?
  • Андрей К
    12 сентября 2016, 17:17
    Мое мнение, сравнивать время из языков не совсем корректно. Мало ли, чего там на qlua задержка какая, тем более вы задействовали стороннюю библиотеку. 

    Чтобы сравнить, кто быстрее, есть уже отработанная методика. В данном случае, с двух терминалов просто посылается заявка. И по номеру заявки смотрится кто быстрее. Если нужно уточнить и время, то смотрится ордерлог на плазе/фасте.
      • Андрей К
        12 сентября 2016, 17:44
        MetaQuotes Software, да. Я прошу прощение. Я не прочитал полностью заголовок. Оказывается вы делали замеры для роботов. А я подумал для ручного трейдинга.
        Но все равно. К моему опыту стоить прислушаться. Если сравнивать, то лучше при одновременной посылке заявок.

        А так доля правды есть. Особенно, что квик очень много тиков не показывает. Скорее всего агрегирует их.
  • itglobal.ru
    12 сентября 2016, 17:18
    Хорошая статья, спасибо. Комментарии лишний раз доказывают, что «стиль полемики важнее предмета полемики» :)
  • Александр
    12 сентября 2016, 17:26
     Еще раз спрошу про стакан: в mt5 все изменения в стакане предоставляются или стакан обновляется 1 раз через какое время?
    И как обновления стакане в mt5 отличаются от Plaza2?
      • Александр
        12 сентября 2016, 17:51
        MetaQuotes Software, Я не понимаю причем здесь qlua. Вот такая архитектура квика, меня устраивает и свою точку зрения я уже изложил. Повторяться не буду. Из mql5 или lua api я пока выбираю второе, т. к. оно не сравнимо круче и удобнее, чем mql5 и позволяет позволяет подключиться к моей системе без особых проблем. Скорости квика мне хватает, все остальное я сделаю на плаза2.

          • Александр
            12 сентября 2016, 18:04
            MetaQuotes Software, Странные вы люди. Я всегда говорил, что не использовал mt5, т. к. затрахался с mt4. Ну мне хватило. Было хотел попробовать, но вот почитал документацию, решил отложить до лучших времен.
            -при абсолютном техническом незнании
            То что вы несете про lua на quik -  это самое настоящие не знание того, как устроен lua и его возможности и архитектура квика. В общем-то я по-мере своих знаний пытаюсь донести свою точку зрения.
            -Очень стараетесь и вам плевать на любые доводы.
            Вы ошибаетесь. Если ваши доводы корректны, то я с ними соглашаюсь. Например, про стакан — я им не доволен в квике, но скорости хватает. Но то, что вы говорите про луа и его возможности -  это полное не желание видеть мощь и силу lua + native язык программирования.
  • broker25
    12 сентября 2016, 17:47
    а что там с раундтрипом заявок в метатрейдере? Я понимаю, что зависит от времени дня и загруженности сервера, но все-таки что в среднем?
      • broker25
        12 сентября 2016, 18:46
        MetaQuotes Software, ничего такого там я не увидел. Раундтрип — это не количество заявок в секунду и не время генерации очередной заявки. А время отклика системы с подтверждением выставления заявки. Только время напрасно потратил на просмотр
          • broker25
            13 сентября 2016, 00:27
            MetaQuotes Software, все я читал, но не верю. Уж как-то смотрится совсем нереально 10 миллисекунд. У меня в Смарткоме 35-75 мс, и я что-то ни разу не слышал, что Айти настолько хуже Открытия. А уж с бксом и сравнивать нечего, у них задержка всегда была нехилой
            • Chepell
              13 сентября 2016, 00:39
              broker25, да все так, 10мс для мт5 вполне реальные цифры. Наблюдаю их у себя на реальном счету.
  • vito2000
    12 сентября 2016, 18:27
    Я хотел перейти на МТ5 с квика, возникли проблемы:
    1. Окна у Квика как-то удобнее настраиваются. В МТ5 широкие рамки. Настроек меньше. Короче, дизайн МТ5 не понравился. Но это не главное.
    2. Чтобы торговать фъючами и акциям нужно ставить ДВА MT5. Из одного торговать нельзя.
    3. «Единый» счет для MT5 не работает (БКС). Нужно держать два депозита: один для фъючей, другой для акций.
    Это очень не удобно. Из-за этого не стал рассматривать MT5.
      • swerg
        12 сентября 2016, 19:57
        MetaQuotes Software> Над единым счетом работаем.

        Т.е. как это? вы может не в курсе — но это деньги. Не виртуальные в БД, а реальные. И разносить их по разным корзинкам — дорогая роскошь.
        И вот когда вы сумеете всё в один счет запихать — вот тогда и будет смысл сравнивать раундтрипы. Пока же вы показываете ускорение на системе с существенно порезанным функционалом как раз там, где всё не просто в смысле скорости.

        MetaQuotes Software> Тут не все от нас зависело.

        Можно ли где-то почитать про это поподробнее?
          • swerg
            12 сентября 2016, 20:15
            MetaQuotes Software> ну чего вы технический провал пытаетесь закрасить единым счетом?

            Это вы вместо простого ответа на технический вопрос пытаетесь замаскировать словоблудием и обвинением задавшего вопрос, указывая, что вопрос — неправильный с вашей точки зрения. И это уже удивительно.

            MetaQuotes Software> Сделаем мы единый счет.

            Славно. Тогда и продолжим разговор.
    • Мурен(а)
      12 сентября 2016, 21:52
      vito2000, как раз графики удобней на мт5. У них больше опций. Разве что сетки не хватает по 100пп, но она есть отдельно на форуме. 
  • swerg
    12 сентября 2016, 20:03
    Тест                   MetaTrader 5    QUIK      Выигрыш MT5
    Синхронные операции        9.59 ms   277.80 ms  28.96 раз
    
    Разница как бы впечатляющая, спору нет.
    Конечно крайне странно, чтобы с одной машины (вы ведь на одной машине тестируете?) была такая жуткая разница, но возможно вы в самом деле что-то круто оптимизировали в части сетевой кухни между терминалом и вашим сервером.
    Но вот какая штука получается. Для ручной торговли — это пофик. Там важнее, чтобы графики не лагали на проливах. Для скоростных роботов — а кого обгонять собираемся, за кем неэффективность подбирать будем? маркет-мейкера? соседнего робота, использующего выделенный интерфейс на биржу? очевидно, их мы никогда не обгоним по определению. Но тогда что нам даст такой прирост?

    Безусловно, такой разрыв — прекрасен сам по себе. Но что он даёт, кроме цифр с тесте? Вот бы какие рассуждения участников любопытно было почитать.
      • swerg
        12 сентября 2016, 20:22
        MetaQuotes Software

        так что с количеством клиентов на сервере? ответ будет?
          • St.Vitaliy
            12 сентября 2016, 21:41
            MetaQuotes Software, А кто контрагент у этого ДЕМО?
  • Изя 3%
    13 сентября 2016, 00:29
    Метатрейдер  настолько быстр, что сделки в нем могут появляться  быстрее самой биржи...
    Чак Норис задумчиво курит в уголке. )
  • Андрей Егоров
    13 сентября 2016, 01:55
    Не то не другое совершенно не подходит для построения роботов, не смотря на все иллюзии )) в одной проге вообще нельзя тестировать, а в другой можно, но нельзя историю загрузить. теоретически построить можно, но для первого слитого депозита
      • swerg
        13 сентября 2016, 18:03
        MetaQuotes Software
        могли бы вы уточнить: почему в коде QLua время получения ответа биржи вы берёте по событию OnOrder, а не по OnTransReply?

        И еще, у вас в коде комментарий ошибочный попался; ошибки для тестов нет, просто на будущее:

        — вызывается при получении новой стоп-заявки или при изменении параметров существующей стоп-заявки
        function OnTrade(order)

      • Андрей Егоров
        15 сентября 2016, 22:27
        MetaQuotes Software, )))))))))))) я даже спорить не буду, но, спасибо, пожрал )))
        а так у вас продукты хорошие, и интернет сообщество сильное (это уже серьезно) спасибо
    • Chepell
      13 сентября 2016, 11:42
      Андрей Егоров, а в чем тогда роботам жить? В самописном софте?
  • Юрий Ч.
    13 сентября 2016, 11:57
    В квике OnTransReply обычно приходит раньше других callbacks, но вы его почему-то не учитываете в тесте синхронных транзакций. А это вполне ответ биржи с номером ордера. Хотя, кардинально это ситуацию не изменит.
  • oreshkinalexey
    13 сентября 2016, 12:07
    MetaQuotes Software, а где исходные коды скриптов которыми проводилось тестирование? хочется самому всё проверить для начала.
  • Юрий Ч.
    13 сентября 2016, 12:14
    Да, почитал статью «Битва за скорость». Если нужны ресурсоёмкие вычисления в qlua — их можно засунуть в dll. Ну я бы так сделал ;-) 
    • Борис Гудылин
      13 сентября 2016, 20:30
      «Если нужны ресурсоёмкие вычисления в qlua — их можно засунуть в dll».
      Юрий Ч., в тестах получал повышение быстродействия своих алгоритмов на 5 порядков, правда, одновременно и алгоритмы переработал (быстродействие в ущерб памяти). Выжал почти все, есть еще потенциальный резерв в замене плавающей арифметики на целочисленную (не оценивал).
        • Борис Гудылин
          14 сентября 2016, 05:20
          MetaQuotes Software, так я и делал DLL на С++, поэтому и получаю скорость тоже на уровне C++ (у меня необычайно ресурсоемкие алгоритмы). Дальнейшее повышение быстродействия — уже моя забота и с MQL и C++ не связана.

          Ответьте, пожалуйста, на мой второй вопрос (выше Вы их не заметили) —  при такой скорострельности MT5, не планируете ли ввести секундные таймфреймы (типа 1, 2, 5, 10, 15, 30)?
            • Борис Гудылин
              14 сентября 2016, 12:59
              MetaQuotes Software, «Если трейдер хочет, он сам может нарезать себе любые таймфреймы для анализа. Но «рыбы там нет»».
              Если я буду делать все сам, то мне и терминал не понадобится, даже такой замечательный, как MT5. А где «водится рыба» — мне знать лучще. Поверьте, для своих алгоритмов и конкретных условий торговли, о которых Вы ничего не знаете,  я выберу оптимальный вариант, без излишеств.
              Когда мой брокер даст мне доступ к площадкам MOEX, я проверю MT5  в моих реальных условиях.

              Спасибо за ответы на мои вопросы.
        • Chepell
          14 сентября 2016, 13:01
          MetaQuotes Software, а вот такая ситуация.
          Пишу в mql5 свои функции, потом из этих функций как из блоков пишу большие функции и использую из в своих экспертах.

          Есть мнение что такой способ написания кода будет медленнее чем если бы я в своиз больших функциях не использовал самописные маленькие функции, а фактически разворачивал бы их и писал все внутри большой функции.

          Надеюсь вы поняли, что я имел в виду ) 
          • TovaL
            18 сентября 2016, 18:08
            Chepell, ну так а замерить скорость в обоих вариантах не судьба на какой-нибудь тестовой функции?
    • transmega
      02 марта 2017, 20:15
      MetaQuotes Software,



      странно, почему на реальных торгах у меня в среднем 150 мс уходит на заявку и на сделку? Пинг 17 мс, сервер Московский.

      быстрее в 4 раза, конечно, чем QUIK, но не 10 мс, какие 10 мс...
      может настраивать надо?
      я просто скачал и ничего не настраивал

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн