Новая версия платформы MetaTrader 5 build 2615: Фундаментальный анализ и комплексный критерий в тестере стратегий - страница 7 1234567891011121314...34 Новый комментарий fxsaber 2020.09.15 19:45 #61 Попытка запуска профилировщика на реальных данных. code generated 1 1 internal error #112 0 0 1 errors, 0 warnings 2 1Профилирование на исторических - аналогично. fxsaber 2020.09.15 20:00 #62 Удалось запустить профилировщик не на боевом советнике. На истории показывает так. OrderSend съедает 92%. Видимо, в Тестере это дорогая функция. fxsaber 2020.09.15 20:05 #63 Видимо, мое невежество в знании возможностей синтаксиса. Print(OrdersTotal() + + PositionsTotal()); // OK A100 2020.09.15 20:19 #64 fxsaber: Видимо, мое невежество в знании возможностей синтаксиса. Это математика - 1ый класс: 1 + + 1 = 1 + (+1) = 2 fxsaber 2020.09.15 20:19 #65 Профилирование на реальных данных этого советника. Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий MT5 и скорость в боевом исполнении fxsaber, 2020.09.08 19:46 // Демонстрация полного (не частичного) пересбора HistorySelect-кеша. #include <fxsaber\Benchmark.mqh> // https://c.mql5.com/3/321/Benchmark.mqh input int inAlertTime = 1; // Нижний порог в миллисекундах #define _B2(A) _B(A, inAlertTime) const bool Init = EventSetTimer(1); void OnTimer() { static MqlTradeRequest Request = {0}; static MqlTradeResult Result = {0}; if (PositionSelectByTicket(Result.order)) // Если позиция открыта - закрываем. { Request.type = ORDER_TYPE_SELL; Request.price = SymbolInfoDouble(_Symbol, SYMBOL_BID); Request.position = Result.order; } else // Иначе - открываем. { Request.action = TRADE_ACTION_DEAL; Request.type = ORDER_TYPE_BUY; Request.symbol = _Symbol; Request.volume = 0.1; Request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); Request.position = 0; } if (OrderSend(Request, Result)) _B2(HistorySelect(0, INT_MAX)); } Выделил совсем непонятные значения. Например, по какой причине OrderSend, который вызывается в OnTimer, сработал 445 раз, а OnTimer - один раз? Лог запуска/выгрузки советника. 2020.09.15 21:12:32.553 Experts expert Test6 (EURUSD,H1) loaded successfully 2020.09.15 21:12:35.160 Trades '34510052': instant buy 0.1 EURUSD at 1.18465 2020.09.15 21:12:35.232 Trades '34510052': accepted instant buy 0.1 EURUSD at 1.18465 2020.09.15 21:12:35.242 Trades '34510052': deal #690865344 buy 0.1 EURUSD at 1.18465 done (based on order #711683631) 2020.09.15 21:12:35.246 Trades '34510052': order #711683631 buy 0.1 / 0.1 EURUSD at 1.18465 done in 85.480 ms 2020.09.15 21:12:36.174 Trades '34510052': instant sell 0.1 EURUSD at 1.18459, close #711683631 buy 0.1 EURUSD 1.18465 2020.09.15 21:12:36.246 Trades '34510052': accepted instant sell 0.1 EURUSD at 1.18459, close #711683631 buy 0.1 EURUSD 1.18465 2020.09.15 21:12:36.246 Trades '34510052': deal #690865354 sell 0.1 EURUSD at 1.18459 done (based on order #711683640) 2020.09.15 21:12:36.251 Trades '34510052': order #711683640 sell 0.1 / 0.1 EURUSD at 1.18459 done in 77.863 ms 2020.09.15 21:12:37.163 Trades '34510052': instant buy 0.1 EURUSD at 1.18465 2020.09.15 21:12:37.235 Trades '34510052': accepted instant buy 0.1 EURUSD at 1.18465 2020.09.15 21:12:37.235 Trades '34510052': deal #690865363 buy 0.1 EURUSD at 1.18465 done (based on order #711683648) 2020.09.15 21:12:37.236 Trades '34510052': order #711683648 buy 0.1 / 0.1 EURUSD at 1.18465 done in 73.463 ms 2020.09.15 21:12:38.174 Trades '34510052': instant sell 0.1 EURUSD at 1.18459, close #711683648 buy 0.1 EURUSD 1.18465 2020.09.15 21:12:38.246 Trades '34510052': accepted instant sell 0.1 EURUSD at 1.18459, close #711683648 buy 0.1 EURUSD 1.18465 2020.09.15 21:12:38.246 Trades '34510052': deal #690865380 sell 0.1 EURUSD at 1.18459 done (based on order #711683666) 2020.09.15 21:12:38.248 Trades '34510052': order #711683666 sell 0.1 / 0.1 EURUSD at 1.18459 done in 73.195 ms 2020.09.15 21:12:39.157 Trades '34510052': instant buy 0.1 EURUSD at 1.18465 2020.09.15 21:12:39.232 Trades '34510052': accepted instant buy 0.1 EURUSD at 1.18465 2020.09.15 21:12:39.232 Trades '34510052': deal #690865391 buy 0.1 EURUSD at 1.18465 done (based on order #711683677) 2020.09.15 21:12:39.233 Trades '34510052': order #711683677 buy 0.1 / 0.1 EURUSD at 1.18465 done in 76.151 ms 2020.09.15 21:12:40.159 Trades '34510052': instant sell 0.1 EURUSD at 1.18459, close #711683677 buy 0.1 EURUSD 1.18465 2020.09.15 21:12:40.235 Trades '34510052': accepted instant sell 0.1 EURUSD at 1.18459, close #711683677 buy 0.1 EURUSD 1.18465 2020.09.15 21:12:40.238 Trades '34510052': deal #690865401 sell 0.1 EURUSD at 1.18459 done (based on order #711683687) 2020.09.15 21:12:40.239 Trades '34510052': order #711683687 sell 0.1 / 0.1 EURUSD at 1.18459 done in 80.488 ms 2020.09.15 21:12:41.124 Experts expert Test6 (EURUSD,H1) removed Девять секунд работал. Секундный OnTimer должен был сработать примерно столько же раз. Как и OrderSend. В общем, что-то не так с профилировщиком. ЗЫ На скрине только четыре строки. Где mqh-составляющая и PositionSelectByTicket? MT5 и скорость в Тестируем 'CopyTicks' Библиотеки: Virtual fxsaber 2020.09.15 20:23 #66 A100: Это математика - 1ый класс: 1 + + 1 = 2 Дело не в математике, а в синтаксисе. 1 + - + 1 = 0Не в курсе, прокатит ли с operator-ами. fxsaber 2020.09.15 20:42 #67 Профилирование на реальных данных этого советника вызывает зависание. A100 2020.09.15 20:51 #68 fxsaber: Дело не в математике, а в синтаксисе.Не в курсе, прокатит ли с operator-ами. 1 + - + 1 = 1+(-(+1)))=0 С operator тоже самое: унарный плюс\минус имеет больший приоритет, чем сложение\вычитание, поэтому скобки не обязательны Если подозреваете ошибку, то напишите в чем она заключается fxsaber 2020.09.15 21:12 #69 A100: С operator тоже самое: унарный плюс\минус имеет больший приоритет, чем сложение\вычитание, поэтому скобки не обязательны Если подозреваете ошибку, то напишите в чем она заключается Ошибок не вижу. Тут мое незнание только. Andrey Khatimlianskii 2020.09.15 22:22 #70 fxsaber: В общем, что-то не так с профилировщиком. Да, после обновления он показывает ахинею. Нужно подождать, пока допилят. 1234567891011121314...34 Новый комментарий
Удалось запустить профилировщик не на боевом советнике. На истории показывает так.
OrderSend съедает 92%. Видимо, в Тестере это дорогая функция.
Видимо, мое невежество в знании возможностей синтаксиса.
Это математика - 1ый класс: 1 + + 1 = 1 + (+1) = 2
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
MT5 и скорость в боевом исполнении
fxsaber, 2020.09.08 19:46
Выделил совсем непонятные значения. Например, по какой причине OrderSend, который вызывается в OnTimer, сработал 445 раз, а OnTimer - один раз?
Лог запуска/выгрузки советника.
Девять секунд работал. Секундный OnTimer должен был сработать примерно столько же раз. Как и OrderSend.
В общем, что-то не так с профилировщиком.
ЗЫ На скрине только четыре строки. Где mqh-составляющая и PositionSelectByTicket?
Это математика - 1ый класс: 1 + + 1 = 2
Дело не в математике, а в синтаксисе.
Не в курсе, прокатит ли с operator-ами.Дело не в математике, а в синтаксисе.
Не в курсе, прокатит ли с operator-ами.С operator тоже самое: унарный плюс\минус имеет больший приоритет, чем сложение\вычитание, поэтому скобки не обязательны
Если подозреваете ошибку, то напишите в чем она заключается
С operator тоже самое: унарный плюс\минус имеет больший приоритет, чем сложение\вычитание, поэтому скобки не обязательны
Если подозреваете ошибку, то напишите в чем она заключается
Ошибок не вижу. Тут мое незнание только.
В общем, что-то не так с профилировщиком.
Да, после обновления он показывает ахинею. Нужно подождать, пока допилят.