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

 
Nikolai Semko #:

https://www.mql5.com/ru/forum/438066#comment_43923901
пока игнорят.
костыльное решение, пока не исправят - использовать мою функцию fBarShift или  wBarShift (работает быстрее штатной iBarShift в несколько раз, но требует библиотеки iCanvas_CB.mqh)

Благодарю

Я бы и сам сделал бы такую же функцию по функционалу. По существу там можно обойтись формулой - разницу между текущим и запрашиваемым временем делить на временной шаг соответствующего таймфрейма, но есть нюанс что нужно "сместить индексацию" с учётом не торговых дней и часов. Это конечно же можно реализовать, но мне лень и я ищу этот индекс простым перебором цикла
 
Alexandr Sokolov #:
Благодарю

Я бы и сам сделал бы такую же функцию по функционалу. По существу там можно обойтись формулой - разницу между текущим и запрашиваемым временем делить на временной шаг соответствующего таймфрейма, но есть нюанс что нужно "сместить индексацию" с учётом не торговых дней и часов. Это конечно же можно реализовать, но мне лень и я ищу этот индекс простым перебором цикла
Это реализовано в wBarShift, которая внутри iCanvas, но эта библиотека делает весьма дорогое обновление данных при наступлении события ChartChange, в том числе обновляет внутренний массив времени открытия баров текущего ТФ и символа. Именно поэтому эта функция значительно превосходит в производительности штатную iBarShift. Это оправданно только если активно использовать пользовательскую графику.
 

За что отвечает выделенный пункт меню на этой картинке?


 
В Документации (online/offline) про это пусто.

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

Новая версия платформы MetaTrader 5 build 3540: 2FA/TOTP аутентификация и улучшенный Обзор рынка в веб-терминале

MetaQuotes, 2022.12.09 10:16

MQL5: Добавлены значения TERMINAL_CPU_NAME и TERMINAL_OS_VERSION в перечисление ENUM_TERMINAL_INFO_STRING. Они позволяют получить наименование процессора и операционной системы пользователя.
void OnStart()
  {
   string cpu,os;
//---
   cpu=TerminalInfoString(TERMINAL_CPU_NAME);
   os=TerminalInfoString(TERMINAL_OS_VERSION);
   PrintFormat("CPU: %s, OS: %s",cpu,os);
  }
Результат:
CPU: Intel Xeon  E5-2630 v4 @ 2.20GHz, OS: Windows 10 build 19045
 
fxsaber #:
В Документации (online/offline) про это пусто.

Было бы не плохо получать MAC или уникальный номер процессора.

 
Vladimir Pastushak #:

Было бы не плохо получать MAC или уникальный номер процессора.

MAC можно сменить за 7 секунд школьной программой. Его учёт имеет мало смыла, также как и SN-жёсткого диска.

 

Ontimer()

В тестере и при оптимизации я так понял не работает?

 
Aleksei Skrypnev #:

Ontimer()

В тестере и при оптимизации я так понял не работает?

Работает

 
Aleksei Skrypnev #:

Ontimer()

В тестере и при оптимизации я так понял не работает?

Здравствуйте, Алексей! Событие OnTimer() работает в советниках и индикаторах, а в скриптах не работает. Причём, каждый эксперт и каждый индикатор работают от своего таймера и получают события только от него. Ещё один важный момент. Нужно запустить (активизировать) таймер при помощи функции EventSetTimer(). Обычно это делают в OnInit(), а по завершению работы удаляют функцией EventKillTimer() в OnDeinit().

Тип

Имя функции

Параметры

Применение

Примечание

void

OnTimer

нет

эксперты и индикаторы

Обработчик события Timer.


С уважением, Владимир.

 
Nikita Chernyshov #:

Работает

Спасибо. Проверил еще раз- в голом эксперте работает- а в моём не работает. Пошёл искать ошибки. Подозреваю что проблема в OnInit

Причина обращения: