MT5 и скорость в боевом исполнении - страница 66

 

По поводу представленного исходника

#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279

void OnStart()
{
  for (int i = 0; i < 5; i++)
    _BV(Sleep(1), 1);
}

Если Вам необходимо быстродействие, откажитесь от этого монстра, ибо Вы сами же себя и тормозите.

Этот инструмент измерения непригоден, так как сам вносит огромную погрешность

В своём скрипте я проставил

#define ITERATIONS 5

Вот лог для 5 итераций

2020.11.04 16:37:24.430 TestSleep (EURUSD,H1)   total 9673 microseconds (1.935 ms per iteration)

Меньше 2 миллисекунд

 
fxsaber:
Разработчики своим молчанием полностью признали наличие двух проблем.

Разработчики своим молчанием признали отстутствие проблем.

 
Slava:

Вот лог для 5 итераций

Меньше 2 миллисекунд

Ваш скрипт.

2020.11.04 16:46:40.341 Test9 (EURCHF,M1)       total 67620 microseconds (13.524 ms per iteration)


Машина.

2020.11.04 16:47:52.962 Terminal        Windows 10 build 19042, Intel Core i7-2700K  @ 3.50GHz, 7 / 15 Gb memory, 18 / 29 Gb disk, IE 11, Admin, GMT+2
 
Anton:

Разработчики своим молчанием признали отстутствие проблем.

Красава! Это нормально, когда тики приходят со временем меньше, чем в Обзоре рынка до этого?

 
fxsaber:

Красава! Это нормально, когда тики приходят со временем меньше, чем в Обзоре рынка до этого?

Нормально.

Я отвечал на этот вопрос 5 дней назад, в этой же ветке:


SymbolInfoTick отдает данные, полученные от сервера брокера. Что сервер прислал, то вы и получаете.

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

 
Slava:

Очередь эксперта - это блокируемый ресурс. Когда в очередь записывается событие, эксперт ждёт (если конечно эксперт в данный момент не обрабатывает какое-либо событие)

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

Я уже Вам говорил, что ОС Windows не является операционной системой реального времени.

Задача очень просто формулируется: как написать советник, который не будет тормозить на ожидании очереди? Бесконечный цикл нельзя, т.к. Sleep - тормоз. И асинхронность идет лесом. Сейчас же ловить ожидания в виде долгих миллисекунд - не дело совсем.

 
fxsaber:

Ваш скрипт.


А для 10 тысяч итераций?

 
Slava:

А для 10 тысяч итераций?

2020.11.04 17:09:30.483 total 155965249 microseconds (15.597 ms per iteration)

Предлагаю другим поделиться результатом запуска этого скрипта на своей машине.

 
Anton:

Нормально.

Я отвечал на этот вопрос 5 дней назад, в этой же ветке:

SymbolInfoTick отдает данные, полученные от сервера брокера. Что сервер прислал, то вы и получаете.

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

Поэтому и задаю вопрос владельцам MQ-Demo.

 
fxsaber:

Задача очень просто формулируется: как написать советник, который не будет тормозить на ожидании очереди? Бесконечный цикл нельзя, т.к. Sleep - тормоз. И асинхронность идет лесом. Сейчас же ловить ожидания в виде долгих миллисекунд - не дело совсем.

Не обманывайте себя и окружающих.

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