Новая версия платформы MetaTrader 5 build 2615: Фундаментальный анализ и комплексный критерий в тестере стратегий - страница 26

 

Правильно ли в данном случае формируется подсказка?

Набрал VIRTUAL::S

добавил n.

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

VIRTUAL:: // Далее набрать S, затем - n.


Думал, что после S появится подсказка всего, что начинается на S.

 
fxsaber:

Просьба пояснить цифры профилировщика.

Судя по картинке, Вы просматриваете отчёт по вызовам.

Функция OrderSend вызывается в вашем коде из 1 места и потребляет более 99 процентов времени работы программы.

 
Ilyas:

Судя по картинке, Вы просматриваете отчёт по вызовам.

Функция OrderSend вызывается в вашем коде из 1 места и потребляет более 99 процентов времени работы программы.

Спасибо. Что там обозначает число 24287?

 
fxsaber:

Спасибо. Что там обозначает число 24257?

Это абстрактные единицы измерения затрат CPU

Новый профилировщик, в отличие от предыдущей версии, не вносит никаких изменений в рабочий нативный код.
Такие изменения являются инструментом измерения и позволяют собрать точное количество работы того или иного участка, но сам инструмент сильно искажает картину по реальному потреблению CPU, т.к. сбор данных очень дорогой.
Вместо этого, новый профилировщик делает паузы в работе MQL программы (~1000 раз в секунду) и отмечает, сколько раз пауза пришлась на тот или иной участок кода, в том числе анализируются стеки вызовов, чтобы определить "вклад" каждой функции в общее время работы кода.
Таким образом, в конце проифилирования мы получаем статистику, сколько раз была выполнена пауза и сколько раз каждая из функций оказывалась в стеке вызовов.

Собственно наша абстрактная единица и есть то количество "появлений" функции в паузах.

При чём счётчика два:
  1. общее количество "появления" функции в стеке вызова (включая счётчик 2)
  2. количество, когда остановились непосредственно внутри функции, этот счётчик наиболее важен для определения "узких" мест
      т.к. по статистике мы чаще будем останавливаться в участках программы требующих большего количество времени CPU

Для нового профилировщика, чем дольше мы проводим профилировку, тем больше данных мы соберём - тем точнее окажется отчёт.


Дополнение:
  в отчёте нового проифилировщика можно не увидеть некоторые строки или даже целые функции, которые ну 100% исполнялись.
 Из-за быстрой скорости работы кода строки или функции, ни одна из пауз профилирования не попадает в участок натива этой строки или функции.

Профилирование кода - Разработка программ - Справка по MetaEditor
Профилирование кода - Разработка программ - Справка по MetaEditor
  • www.metatrader5.com
Профилирование — это сбор характеристик программы во время ее выполнения. При профилировании замеряется время выполнения и количество вызовов отдельных функций и строк в коде программы. При помощи этого инструмента программист может найти наиболее медленные участки кода и провести их оптимизацию. Профилирование можно проводить на обычном...
 

Запустил по тикам тест в визуализаторе.

В логе время первого принта

2020.09.28 17:22:22.327 2020.09.18 09:45:02   Test_01

По тикам если смотреть инструмент, то первый тик был ровно в 10:00, да и торговая сессия ещё закрыта в это время. Это в визуальном режиме, без галки первый принт приходит в 10 часов.

 
Точки останова работают в 2622-м как им захочется:  срабатывают через рандомный раз... исправьте пож-ста.
 
Ilyas:

Огромное Спасибо за такие подробности! Теперь стало понятно, что обозначают цифры и как трактовать отсутствие функций.

 

build 2615

В MetaEditor подсказки уходят за левый край экрана, из-за этого подсказки практически не видны:


 
Maksym Mudrakov:

build 2615

В MetaEditor подсказки уходят за левый край экрана, из-за этого подсказки практически не видны:


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

Новая версия платформы MetaTrader 5 build 2615: Фундаментальный анализ и комплексный критерий в тестере стратегий

Renat Fatkhullin, 2020.09.24 13:32

Выпущена бета 2620 с исправлениями:

  • скорректирована точка привязки окна интеллисенса в редакторе
  • правильно наследуются комментарии при построении истории по позициям
  • улучшен профилировщик
  • в Tools -> Options -> Charts добавлен флаг Preload chart data for opened positions and orders для того, чтобы терминал автоматически поднимал закачку истории чартов открытых позиций. это дает ускорение работы при переключении графиков
  • улучшена принудительная отрисовка графиков при синхронизации блоков истории


.
 
Alexey Viktorov:

Установил MT5 от MetaQuotes, билд 2622. Работает все отлично.