Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5 - страница 20

 
Vladislav Boyko #:
время открытия текущего M15 бара 23:46, в то время как время открытия текущего H4 бара 20:00

Спарведливости ради, этот кейс был в MT4, я нашел скриншот логов:

Время текущего бара с логов на скриншоте (обратите внимание на то, как H4 выделяется среди остальных):

M5 23:56
M15 23:46
H1 23:01
H4 20:00
 
Vladislav Boyko #:

Спарведливости ради, этот кейс был в MT4, я нашел скриншот логов:

Время текущего бара с логов на скриншоте (обратите внимание на то, как H4 выделяется среди остальных):

M5 23:56
M15 23:46
H1 23:01
H4 20:00
Всегда было, что время открытия бара - это время первой котировки в этом баре.
 
Sergey Gridnev #:
Всегда было, что время открытия бара - это время первой котировки в этом баре.

Тогда пардон, я туплю, получается

 
Ivan Otto #:

Сейчас построение баров привязано к времени сервера брокера. Но время сервера не всегда совпадает с реальным временем начала торговой сессии на бирже. В результате:

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

 

b5222, обратил внимание, что увеличение локальных Агентов (CPU-ядер) в три раза ускоряет расчеты (оптимизация) в два раза в мат. режиме.


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

#property tester_no_cache

input int inRange = 0;

const ulong StartTime = GetMicrosecondCount();

// Возвращает длительность выполнения прохода.
double OnTester() { return((double)(GetMicrosecondCount() - StartTime)); }


Количество Агентов - 1.

optimization finished, total passes 60
optimization done in 0 minutes 39 seconds
shortest pass 0:00:00.624, longest pass 0:00:01.299, average pass 0:00:00.641


Количество Агентов - 3.

optimization finished, total passes 60
optimization done in 0 minutes 18 seconds
shortest pass 0:00:00.692, longest pass 0:00:01.697, average pass 0:00:00.877


Количество Агентов - 6.

optimization finished, total passes 60
optimization done in 0 minutes 17 seconds
shortest pass 0:00:00.833, longest pass 0:00:03.095, average pass 0:00:01.620


Итог.

  • Производительность шести (17 секунд) и трех Агентов (18 секунд) почти совпадает!
  • Первый проход пачки заданий почти каждого Агента выполняется на ~85% медленнее (на скринах в красной рамке) остальных проходов в пачке.

Понятно, что дает о себе знать Hyper-threading, но я пробовал выключать все четные Агенты - никакого влияния не результат.


Почему производительность каждого отдельного Агента падает в 1.5 раза при задействовании трех Агентов вместо только одного?

Как убрать медленные проходы, которые проявляются даже при серьезных вычислениях в каждом проходе (из мат. режима пришел писать этот пост)?

 

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

Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5

fxsaber, 2025.08.18 15:28

Количество Агентов - 1.

optimization finished, total passes 60
optimization done in 0 minutes 39 seconds
shortest pass 0:00:00.624, longest pass 0:00:01.299, average pass 0:00:00.641

Попробовал тот же EX5 запустить на b5147 - он заметно быстрее (~10%).

optimization finished, total passes 60
optimization done in 0 minutes 35 seconds
shortest pass 0:00:00.577, longest pass 0:00:00.608, average pass 0:00:00.581


Несколько раз перемерил оба билда - стабильно воспроизводится. Просьба убрать замедление.

Строка для поискаOshibka 142.

 
Aleksey Vyazmikin #:

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

Не важно кто где торгует день должен начинаться тогда когда начинается торговля бенчмарка. Сама время не важна а начало сессии должно совпадать с биржевой. Второй момент, надеюсь я не открою никакой секрет, но все дилеры это не торговля, а обменный пункт со своими курсами которые к реальной цене и самой торговли никакого отношения не имеют. Торговля происходит исключительно на бирже. Поэтому когда торговля начинается в воскресенье вечером в Чикаго это начало новой недели, дня, 4-х часового периода. И когда смотришь график должен видеть целый день а не два часа воскресенье и потом понедельник только потому что время сервера поставщика котировок настроена непонятно как. Если поставщики котировок не хотят давать правильно котировки, тогда разработчик должен добавить возможность исправить косяки поставщика. Время,цена и объем в торговле главные переменные и они должны соответствовать, на неправильных данных невозможно принимать правильные решения.

 
Ivan Otto #:

Не важно кто где торгует день должен начинаться тогда когда начинается торговля бенчмарка. Сама время не важна а начало сессии должно совпадать с биржевой. Второй момент, надеюсь я не открою никакой секрет, но все дилеры это не торговля, а обменный пункт со своими курсами которые к реальной цене и самой торговли никакого отношения не имеют. Торговля происходит исключительно на бирже. Поэтому когда торговля начинается в воскресенье вечером в Чикаго это начало новой недели, дня, 4-х часового периода. И когда смотришь график должен видеть целый день а не два часа воскресенье и потом понедельник только потому что время сервера поставщика котировок настроена непонятно как. Если поставщики котировок не хотят давать правильно котировки, тогда разработчик должен добавить возможность исправить косяки поставщика. Время,цена и объем в торговле главные переменные и они должны соответствовать, на неправильных данных невозможно принимать правильные решения.

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

В любом случае, вопрос к форекс-дилеру и регулятору. Знаете кто выдал лицензию конторе, с которой вы заключаете сделки?

 
fxsaber #:
я пробовал выключать все четные Агенты - никакого влияния не результат.

По моим давним наблюдениям, по порядку нумерации нельзя определить тип ядра. То ли номера присваиваются произвольно, то ли одно из двух. Но MQ знает, какие ядра из них физические. Если даже номера присваиваются строго по правилам, мне не удавалось подобрать комбинацию ядер для максимальной производительности.

Но это старые эксперименты. Что-то изменилось с тех пор?

 
Edgar Akhmadeev #:

По моим давним наблюдениям, по порядку нумерации нельзя определить тип ядра. То ли номера присваиваются произвольно, то ли одно из двух. Но MQ знает, какие ядра из них физические. Если даже номера присваиваются строго по правилам, мне не удавалось подобрать комбинацию ядер для максимальной производительности.

Но это старые эксперименты. Что-то изменилось с тех пор?

OS занимается такими вопросами, я думаю.