Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2453

 

Вот у меня вопрос по профилированию на истории - не понимаю этот инструмент.

Провожу профилирование, как я понимаю результаты показывают что функция нормализация ну прям очень много потребляет.

Тестирую советник просто скомпилировав, такое время прохода

2024.09.29 08:02:27.036 Core 1  final balance 1025220.10 pips
2024.09.29 08:02:27.036 Core 1  OnTester result 380.94
2024.09.29 08:02:27.036 Core 1  EURJPY,M15: 24552650 ticks, 412752 bars generated. Environment synchronized in 0:00:00.059. Test passed in 0:00:38.338 (including ticks preprocessing 0:00:04.633).
2024.09.29 08:02:27.036 Core 1  EURJPY,M15: total time from login to stop testing 0:00:38.397 (including 0:00:00.059 for history data synchronization)
2024.09.29 08:02:27.036 Core 1  1523 Mb memory used including 413 Mb of history data, 512 Mb of tick data

И убираю нормализацию, компилирую и получаю такой результат

2024.09.29 08:04:45.386 Core 1  final balance 1025350.10 pips
2024.09.29 08:04:45.386 Core 1  OnTester result 383.97
2024.09.29 08:04:45.386 Core 1  EURJPY,M15: 24552650 ticks, 412752 bars generated. Environment synchronized in 0:00:00.217. Test passed in 0:00:38.426 (including ticks preprocessing 0:00:04.634).
2024.09.29 08:04:45.386 Core 1  EURJPY,M15: total time from login to stop testing 0:00:38.643 (including 0:00:00.217 for history data synchronization)
2024.09.29 08:04:45.386 Core 1  1536 Mb memory used including 413 Mb of history data, 512 Mb of tick data

Разница ну прям в рамках погрешности измерения - это же не 10% от времени.

Я чего то не правильно читаю, или он так обычно врёт и это нормально?

Ещё тут спрошу по памяти - чего ж он так много потребляет - гигабайт аж целый, если историю исключить? Пяток индикаторов всего, никаких баз... как искать утечку памяти?

 
Vitaly Muzichenko #:

Нашёл пример кода, но как-то не складывается у меня с ним для mql

https://arxont.blogspot.com/2011/08/mac-c.html

Получаю вылет dll

---

Кто сможет помочь сделать получение МАС кодом mql 

Спасибо!

Нужен именно MAC локальной, а не удалённой машины. И не loopback-адаптера, к которому привязан локальный адрес 127.0.0.x

Кстати, сетевых адаптеров может быть и несколько.

 
MT4 не устанавливается на мой компьютер. При подключении пишет: "Неверный счет". Что делать?
 
Selena.07 #:
MT4 не устанавливается на мой компьютер. При подключении пишет: "Неверный счет". Что делать?

"Не устанавливается" и "При подключении пишет: "Неверный счет"" - взаимоисключающие утверждения.

Так что же всё-таки?

 
Artyom Trishkin #:

"Не устанавливается" и "При подключении пишет: "Неверный счет"" - взаимоисключающие утверждения.

Так что же всё-таки?

Платформа устанавливается, но подключиться невозможно. Все время пишет  "Неверный счет". Вот так и понимать, что пользоваться нельзя.
 

Внимательно выбирайте сервер, одна ошибка в цифре и всё


 

Здравствуйте.

Подскажите, пожалуйста, где ошибка.

Выражение :

Buffer_Symbol[i]=1/iClose(Symbol_1,0,i);

- компилируется без ошибок, но в "Терминал", вкладка "Эксперты" выдает :

2024.10.02 21:31:40.820 Mirroring Symbol v.1 AUDNZD,M15: zero divide in 'Mirroring Symbol v.1.mq4' (54,45)

т.е. деление на "0" 

массив Buffer_Symbol[] объявлен как double

Заранее благодарен.

 
graf1976 #:

Здравствуйте.

Подскажите, пожалуйста, где ошибка.

Выражение :

Buffer_Symbol[i]=1/iClose(Symbol_1,0,i);

- компилируется без ошибок, но в "Терминал", вкладка "Эксперты" выдает :

2024.10.02 21:31:40.820 Mirroring Symbol v.1 AUDNZD,M15: zero divide in 'Mirroring Symbol v.1.mq4' (54,45)

т.е. деление на "0" 

массив Buffer_Symbol[] объявлен как double

Заранее благодарен.

if(iClose(Symbol_1,0,i)!=0) Buffer_Symbol[i]=1/iClose(Symbol_1,0,i);
 
Tretyakov Rostyslav #:

Спасибо большое.

Заработало.

Вот только не пойму, как выражение (цена закрытия) :

iClose(Symbol_1,0,i)

может быть равно "0" ?

 
graf1976 #:

Вот только не пойму, как выражение (цена закрытия) :

может быть равно "0" ?

Читайте документацию.

Возвращаемое значение

Значение цены закрытия бара (указанного параметром shift) соответствующего графика или 0 в случае ошибки. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().

Всегда читайте что возвращает любая функция и проверяйте полученное значение на ошибочное. Это аксиома.
Документация по MQL5: Доступ к таймсериям и индикаторам / iClose
Документация по MQL5: Доступ к таймсериям и индикаторам / iClose
  • www.mql5.com
Возвращает значение цены закрытия бара (указанного параметром shift) соответствующего графика. Параметры symbol [in]  Символьное имя...