Ошибки, баги, вопросы - страница 3055

 
fxsaber:

В режиме отображения закрытых позиций есть столбец Cost.

Что это?

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

 

Ошибка  failed [538]  

Решение:

  1. Удалить программу из навигатора
  2. Перезагрузить терминал
  3. Скачать программу заново из маркета
 
Alain Verleyen:


Некоторые вопросы о странных вещах, связанных с данными, возвращаемыми профилировщиком.
...

Q1. В отчете указано 139098 измерений, но onTick () Total CPU составляет 150026, как это возможно? (однако CopyHistoryData 80087 как 57,58% правильно означает 100% = 139098).

Q2. В отчете говорится о 571 051 других «функциях». Что это за функции, если они не являются ни mql, ни встроенными, ни системными?

Q3. CopyHistoryData показывает 80087 Total CPU, с 3 сообщенными вызовами функций (CopyHigh, CopyLow, CopyTime), имеющими разные общие CPU, OK. Однако собственный ЦП для этих функций такой же и равен общему ЦП (стек вызовов). Кажется, что это неверные данные, так как на 80087 (стеки) для CopyHistoryData сумма для 3 функций составляет 62 161 (44286 + 9448 + 8427), как это может быть, при 62 161 вызовах он обнаруживает 80 087 пауз в этих 3 функциях? Невозможно, единственное объяснение состоит в том, что это число является глобальным для CopyHistoryData и, следовательно, бесполезным. Я что-то пропустил?



  1. Почему не приложили отчёт? в нём указаны ошибки замеров.

  2. Функции, которые не удалось классифицировать, их можно считать "system"

  3. Получение исторических данных -  это одна функция CopyHistoryData, какие именно данные запрашиваются передаётся параметром.
    К сожалениею, мы не можем определить (по крайней мере пока), какая именно CopyXXX функция была вызвана.

    Т.к. это одна функция CopyHistoryData, счётчик "Self CPU" тоже один + в отчёте Вы видите 3 места вызова CopyHistoryData, у каждого места вызова (фактически строки кода) свой счётчик "Total CPU".

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

 

Ilyas:

я подумаю, что можно сделать.

В некоторых профайл-режимах EX5 создает статистику по вызову каждой функции. Статистика видна только в том случае, если запустить из ME.

Возможно ли в этом EX5-режиме выводить статистику в текстовый файл, минуя ME?

Сейчас, например, очень сложно понять статистику вызовов, например, SymbolInfoTick. Сам замеряю, вижу, что лагает. Но для этого спец. движения нужно делать.

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


Просто запуск профайлера - это происходит на обычной рабочей машине. А при HFT идет запуск на машине с мин. пингом, много терминалов и т.д. В общем, специфические свойства, где как раз и нужны замеры.

 

Желательно добавить такую общепринятую форму записи:

void OnStart()
{
    ushort ch = '\u0041'; //Error: '' - unrecognized character
}

тем более, что \u - это однозначно Unicode, в то время как \x - не обязательно

 
Ilyas:


  1. Why didn't they attach a report? it lists measurement errors.

  2. Functions that could not be classified can be considered "system"

  3. Historical data retrieval is one function of CopyHistoryData, what kind of data is requested is transmitted by the parameter.
    Unfortunately, we can't determine (at least not yet) which CopyXXX function was called.
    Since this is one function of CopyHistoryData, the counter "Self CPU" is also one + in the report you see 3 places of call CopyHistoryData, each place of call (actually lines of code) has its own counter "Total
    CPU".
    As for the discrepancy of values, the CopyHistoryData function is "heavy" and apparently, in terms of measurements, it was not possible to determine the place of the call - this is due to some features of the native x64 code, I will think about what can be
    done.

Thanks for your answers.

"Why didn't they attach a report? it lists measurement errors."

0 2021.07.08 15:38:38.647 MQL5 profiler starting 'STS2020.ex5' on history with parameters:

0 2021.07.08 15:38:38.647 MQL5 profiler    symbol: 'EURUSD'

0 2021.07.08 15:38:38.647 MQL5 profiler    period: 'H1'

0 2021.07.08 15:38:38.647 MQL5 profiler    date from: '2021.04.01'

0 2021.07.08 15:38:38.647 MQL5 profiler    date to: '2021.05.31'

0 2021.07.08 15:38:38.647 MQL5 profiler    ticks mode: 'open prices'

0 2021.07.08 15:38:38.647 MQL5 profiler    execution delay: 0 ms

0 2021.07.08 15:38:38.647 MQL5 profiler    deposit: 100000

0 2021.07.08 15:38:38.647 MQL5 profiler    currency: 'EUR'

0 2021.07.08 15:38:38.647 MQL5 profiler    leverage: 1:15

0 2021.07.08 15:38:38.647 MQL5 profiler    profit in pips: NO

0 2021.07.08 15:38:38.952 MQL5 profiler connected

0 2021.07.08 15:43:06.269 MQL5 profiler profile data received (8896 bytes)

0 2021.07.08 15:43:06.269 MQL5 profiler 139098 total measurements, 0/0 errors, 320 mb of stack memory analyzed (92848/1073741824)

0 2021.07.08 15:43:06.269 MQL5 profiler 982065 total function frames found (279627 mql5 code, 122460 built-in, 571051 other, 8927 system)

There was no errors.

As a side note "open prices" is incorrect, the mode used was "1 Minute OHLC".

 

Никто, похоже, не знает. Уважаемые разработчики, просьба пояснить значение данного параметра.


Нашел описание некоторых параметров, по которым появились вопросы, когда стал смотреть на их значения.

Forum on trading, automated trading systems and testing trading strategies

New MetaTrader 5 Platform Build 2450: "Subscriptions" service, UI improvements and revised features in MetaEditor

MetaQuotes, 2020.05.15 13:43

New columns have been added in the list of open orders and positions:

  • Change — operation profitability percentage
  • Value — the market value of the position
  • Magic — the identifier of orders and positions opened by the Expert Advisor (magic number)

  • Change % для сделок вычисляется Терминалом?
  • Market Value показывает объем в каких единицах?


ЗЫ

MarketValue = ClosePrice * Lots * ContractSize; // Какой смысл в этом значении?
 
Alain Verleyen:

Thanks for your answers.

...

As a side note "open prices" is incorrect, the mode used was "1 Minute OHLC".

Спасибо, исправлено

 
Поделитесь получением хендла Alert-окна.
 
QK      2       14:39:14.890    Terminal        crashlog generated
DE      2       14:39:16.382    Terminal        crashlog finalized
Где смотреть крешлог?