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

 
Renat Fatkhullin:

Идите поучитесь теме (лет 10 минимум) и не мусорьте в этой ветке, пожалуйста.

Здесь с другой подготовкой и другого класса вопросы обсуждают.

Уважаемые коллеги разработчики, отдавшие пол-жизни изучению обсуждаемой темы.

Ответьте, пожалуйста, на простой вопрос пользователя.

Как будет быстрее работать и меньше потреблять ресурсов терминал, если в нем будет 99 советников:

1. На одном и том же символе

-использующих OnTick и получающих текущие цены через SymbolInfoTick

-использующих OnBookEvent и получающих текущие цены через MarketBookGet

2. То же самое, но на разных символах

Спасибо!
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
 
Dmi3:

Уважаемые коллеги разработчики, отдавшие пол-жизни изучению обсуждаемой темы.

Ответьте, пожалуйста, на простой вопрос пользователя.

Как будет быстрее работать и меньше потреблять ресурсов терминал, если в нем будет 99 советников:

1. На одном и том же символе

-использующих OnTick и получающих текущие цены через SymbolInfoTick

-использующих OnBookEvent и получающих текущие цены через MarketBookGet

2. То же самое, но на разных символах

Спасибо!

Почему Вы решили, что это простой вопрос?

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

 
Dmi3:

Как будет быстрее работать и меньше потреблять ресурсов терминал, если в нем будет 99 советников:

2. То же самое, но на разных символах

99 стаканов транслировать - не хилый поток.

 
fxsaber:

99 стаканов транслировать - не хилый поток.

По факту живых у нас на фортс с десяток, остальные малоликвидные. 
 
Dmi3:
По факту живых у нас на фортс с десяток, остальные малоликвидные. 

Запустить этот советник в различных конфигурациях и посмотреть результат.

 
fxsaber:

Запустить этот советник в различных конфигурациях и посмотреть результат.

Смотрим результат (Билд 2650, Открывашка, реал)

2020.11.09 20:12:22.910 11_test (Si-12.20,M1)   Alert: OnTick-lag! - 291655 mcs.
2020.11.09 20:12:22.910 11_test (Si-12.20,M1)        [bid]  [ask] [onTick] [Interval]
2020.11.09 20:12:22.910 11_test (Si-12.20,M1)   [0]  76595  76598    false        696
2020.11.09 20:12:22.910 11_test (Si-12.20,M1)   [1]  76596  76598     true     150488
2020.11.09 20:12:22.910 11_test (Si-12.20,M1)   [2]  76596  76598    false        323
2020.11.09 20:12:22.910 11_test (Si-12.20,M1)   [3]  76596  76598     true     291655
2020.11.09 20:12:23.290 11_test (Si-12.20,M1)   Alert: OnTick-lag! - 25571 mcs.
2020.11.09 20:12:23.290 11_test (Si-12.20,M1)        [bid]  [ask] [onTick] [Interval]
2020.11.09 20:12:23.290 11_test (Si-12.20,M1)   [0]  76595  76598    false        663
2020.11.09 20:12:23.290 11_test (Si-12.20,M1)   [1]  76595  76597     true      97445
2020.11.09 20:12:23.290 11_test (Si-12.20,M1)   [2]  76595  76597    false        334
2020.11.09 20:12:23.290 11_test (Si-12.20,M1)   [3]  76595  76597     true      25571
2020.11.09 20:12:23.920 11_test (Si-12.20,M1)   Alert: OnTick-lag! - 209232 mcs.
2020.11.09 20:12:23.920 11_test (Si-12.20,M1)        [bid]  [ask] [onTick] [Interval]
2020.11.09 20:12:23.920 11_test (Si-12.20,M1)   [0]  76593  76596    false        659
2020.11.09 20:12:23.920 11_test (Si-12.20,M1)   [1]  76594  76596     true      33395
2020.11.09 20:12:23.920 11_test (Si-12.20,M1)   [2]  76594  76596    false        343
2020.11.09 20:12:23.920 11_test (Si-12.20,M1)   [3]  76594  76596     true     209232
2020.11.09 20:12:24.572 11_test (Si-12.20,M1)   Alert: OnTick-lag! - 31365 mcs.
2020.11.09 20:12:24.572 11_test (Si-12.20,M1)        [bid]  [ask] [onTick] [Interval]
2020.11.09 20:12:24.572 11_test (Si-12.20,M1)   [0]  76594  76597    false        342
2020.11.09 20:12:24.572 11_test (Si-12.20,M1)   [1]  76594  76596     true      66980
2020.11.09 20:12:24.572 11_test (Si-12.20,M1)   [2]  76594  76596    false        662
2020.11.09 20:12:24.572 11_test (Si-12.20,M1)   [3]  76594  76596     true      31365
2020.11.09 20:12:25.137 11_test (Si-12.20,M1)   Alert: OnTick-lag! - 340874 mcs.
2020.11.09 20:12:25.137 11_test (Si-12.20,M1)        [bid]  [ask] [onTick] [Interval]
2020.11.09 20:12:25.137 11_test (Si-12.20,M1)   [0]  76591  76593     true       6635
2020.11.09 20:12:25.137 11_test (Si-12.20,M1)   [1]  76591  76593     true          5
2020.11.09 20:12:25.137 11_test (Si-12.20,M1)   [2]  76591  76593    false        654
2020.11.09 20:12:25.137 11_test (Si-12.20,M1)   [3]  76591  76593     true     340874
 
prostotrader:

Смотрим результат (Билд 2650, Открывашка, реал)

Это некорректное сравнение (по распечатке это видно), т.к. при наличии ластов код должен быть иным.

 
fxsaber:

Это некорректное сравнение (по распечатке это видно), т.к. при наличии ластов код должен быть иным.

Это Ваша программа (ничего не менял) :)

Добавлено

// Возвращает bid/ask-цены из стакана.
bool GetCurrentPrices( double &bid, double &ask )
{
  MqlBookInfo Bands[];

  const bool Res = MarketBookGet(_Symbol, Bands);

  if (Res)
    for (int i = ArraySize(Bands) - 2; i >= 0; i--)
      if (Bands[i].type == BOOK_TYPE_SELL)
      {
        ask = Bands[i].price;
        bid = Bands[i + 1].price;
        
        break;
      }
  
  return(Res);
}

Некорректная функция, т.к

1. стакан может быть пустым 

2. В стакане нет Sell котировок

3.  В стакане нет Buy котировок

 
prostotrader:

Некорректная функция, т.к

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

prostotrader:

Это Ваша программа (ничего не менял) :)

Поэтому и знаю логику этой программы настолько, что могу утверждать про некорректность ее результатов на ФОРТС.

 
fxsaber:

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

Поэтому и знаю логику этой программы настолько, что могу утверждать про некорректность ее результатов на ФОРТС.

Ок