Библиотеки: MT4Orders - страница 73

 
prostotrader #:

у меня максимальное ожидание, если нет ответа в OnTradeTransaction, 250 МС

За 10 сек можно весь депозит слить.

Я тоже так жду, а ещё жду наследство от богатого, но неизвестного родственника.

Ждать можно всего, но есть реальность


 

Прошло время - имею это


 
fxsaber #:

И что делаете после этого времени, если ответа нет?

Жду следующие 250 мс, а не сразу 10 секунд!

Но это редко бывает, обычно OnTradeTransaction отлично работает.

 
Vitaly Muzichenko #:

Прошло время - имею это


У меня пинг 5-7 мс из дома.

 
prostotrader #:

Жду следующие 250 мс, а не сразу 10 секунд!

Обратите внимание на выделенное слово.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: MT4Orders

fxsaber, 2022.02.22 00:40

Разрешите ждать результата до 10-ти секунд.

MT4ORDERS::OrderSend_MaxPause = 10000000; // максимальное время на синхронизацию в мкс.

И между соседними проверками состояния библиотека не ждет 250 мс, даже 1 мс не ждет. Как только будет ответ, сразу даст знать. Через 0.5 мс - значит ответ будет через 0.5 мс. Через 2345 мс, значит ответ будет ровно через это время. Ну не может быть тупой самая популярная в мире торговая библиотека под MT5.

 
prostotrader #:

У меня пинг 5-7 мс из дома.

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

 
fxsaber #:

Обратите внимание на выделенное слово.

И между соседними проверками состояния библиотека не ждет 250 мс, даже 1 мс не ждет. Как только будет ответ, сразу даст знать. Через 0.5 мс - значит ответ будет через 0.5 мс. Через 2345 мс, значит ответ будет ровно через это время. Ну не может быть тупой самая популярная в мире торговая библиотека под MT5.

Каким образом не ждет?

Мы можем работать только по событиям в терминале, колбэков-то нет.

 
prostotrader #:

Каким образом не ждет?

Цикл.

 
fxsaber #:

Цикл.

Понятно :)

А что будет с терминалом, если не 1, а 48 роботов, как у меня?

Добавлено

По 48 роботов в 3-х терминалах + В Квике 12 роботов


 
prostotrader #:

А что будет с терминалом, если не 1, а 48 роботов, как у меня?

Будет так.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: MT4Orders

fxsaber, 2022.01.14 02:53

Данные технического стресс-теста библиотеки на боевом счету.

  • Один терминал MT5 b2958. Hedge.
  • 16 чартов, на каждом запущен торговый советник.
  • Каждый советник в среднем содержит больше 10 независимых ТС (логика и мэджик).
  • Торговля ведется через MT4Orders+ByPass+Virtual+Snapshot.
  • Ценовые данные через CopyTicks+SymbolInfoTick.
  • Не ценовые данные - Календарь через MQL.
  • Более 160 ТС работает параллельно. Каждая сопровождает свои позиции и отложки.
  • OrdersTotal + PositionsTotal > 300.
  • Комбинации реджектов, частичных заливок и CloseBy.
  • TERMINAL_MEMORY_USED = 4 Gb. Основное потребление - встроенные в Терминал на каждый запущенный EX5 автоматический кеш истории торгов: HistoryDealsTotal+HistoryOrdersTotal > 100K.
  • 35% реджектов.
  • Суточный торговый оборот > $50 mio.
  • Суточные HistoryDealsTotal > 1200, HistoryOrdersTotal > 1700.
  • Все настройки Терминала сведены к минимуму, служебные окна закрыты, чарты и терминал минимизированы.
  • CPU в нормальном режиме ~ 1%. На активном рынке всплески до десятков процентов.
  • Торговый API - MT4Style only.
  • Горячая замена EX5 (обновление) прямо во время работы.
  • Ping 3 ms.
  • Все торговые приказы синхронные (не OrderSendAsync). OnTrade-функции не используются.

В таком режиме библиотека справлялась со всеми рассинхронами MT5. MT4-логика не нарушалась.


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

После горячей замены EX5 данные синхронизатора таковы.

MT4ORDERS::ByPass: Amount = 486/2336655 = 0.02%, Time(mcs) = 43175/51577570 = 0.08%, TimeAvg = 22 mcs, MaxInterval = 225711 mcs., Bugs = 0

Меньше 0.1% времени работы ушло на синхронизацию MT5. Среднее время - 22 микросекунды. Максимальное - 225 миллисекунд. Из 2.5 часов работы советника были потрачены 51 секунда на вызовы синхронизатора (0.5%).


Оценка надежности библиотеки довольно высокая. Можно рекомендовать.

Ну и боевых загруженных Терминалов поболее.