Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1522

 
MrBrooklin #:

За то, что подробно рассказали, как сделать замеры скорости, огромное спасибо!!!

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

Володя, сейчас обнаружил что мои знания и подсказки по замерам скорости несколько устарели.
Раньше пользовался функциями таймера высокого разрешения (миллисекунды) EventSetMillisecondTimer(), который нужно было устанавливать в OnInit() и далее использовать функцию GetTickCount()  в скрипте / советнике / индикаторе.
Сейчас в ветке https://www.mql5.com/ru/forum/170952/page255 увидел что появилась (а м.б. она была и раньше) функция GetMicrosecondCount(). С ней работать чуть проще и разрешение выше на 3 порядка.
Пример использования по ссылке выше на ветку и в документации.

Документация по MQL5: Работа с событиями / EventSetMillisecondTimer
Документация по MQL5: Работа с событиями / EventSetMillisecondTimer
  • www.mql5.com
Указывает клиентскому терминалу, что для данного эксперта или индикатора необходимо генерировать события таймера с периодичностью менее одной...
 
Grigori.S.B #:

Володя, сейчас обнаружил что мои знания и подсказки по замерам скорости несколько устарели.
Раньше пользовался функциями таймера высокого разрешения (миллисекунды) EventSetMillisecondTimer(), который нужно было устанавливать в OnInit() и далее использовать функцию GetTickCount()  в скрипте / советнике / индикаторе.
Сейчас в ветке https://www.mql5.com/ru/forum/170952/page255 увидел что появилась (а м.б. она была и раньше) функция GetMicrosecondCount(). С ней работать чуть проще и разрешение выше на 3 порядка.
Пример использования по ссылке выше на ветку и в документации.

Огромное спасибо! На выходных попробую измерить скорость. )) Тем более, что в документации приведён пример.

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

 
MrBrooklin #:

Огромное спасибо! На выходных попробую измерить скорость. )) Тем более, что в документации приведён пример.

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

Только скорость надо замерять на миллион итераций цикла. Иначе будет погрешность очень высокая.

 
Alexey Viktorov #:

Только скорость надо замерять на миллион итераций цикла. Иначе будет погрешность очень высокая.

Привет, Алексей! Спасибо за уточнение. ))

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

 
MrBrooklin #:

Вам обязательно нужно по хэндлу? А то есть функция, которая удаляет с указанного окна графика индикатор с указанным именем. 

IndicatorDelete(int,const string) - Ценовые графики - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5

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

это работает только в коде индикатора либо я не соображу как эт  сделать, дайте пожалуйста пример добавления и удаления аллигатора

 
Посмотрите на этот пример и внесите необходимые изменения в коде:
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- удалим подокно  
   ChartIndicatorDelete(0,subwindow_ID,"Subwindow");
//--- удалим с главного окна индикатор PriceChannel: его короткое имя с параметрами по умолчанию - "Price Channel(22)"
   ChartIndicatorDelete(0,0,"Price Channel(22)");
  }
//+------------------------------------------------------------------+

По моему в коде всё предельно ясно закомментировано. Первая строка кода удаляет подокно, а вторая строка удаляет индикатор с главного окна, только нужно правильно написать короткое имя удаляемого индикатора.

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

 
это если у индикатора есть имя, а если он добавлен по хендлу не все так просто
 
AkaEdie #:
это если у индикатора есть имя, а если он добавлен по хендлу не все так просто

Не понимаю, а что мешает самому прописать (вставить) это короткое имя в коде используемого индикатора? Например так, как это сделано в коде индикатора у Артёма Тришкина, только при этом заменив имя "Net Volume" на какое-нибудь своё:

IndicatorSetString(INDICATOR_SHORTNAME,"Net Volume");

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

 
MrBrooklin #:

Не понимаю, а что мешает самому прописать (вставить) это короткое имя в коде используемого индикатора? Например так, как это сделано в коде индикатора у Артёма Тришкина, только при этом заменив имя "Net Volume" на какое-нибудь своё:

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

Это прописывается в индикаторе, а не в момент его постановки на график.

 
вот и я о томже, у меня индикатор аллигатор используется, как его в таком случае подключить к графику если я эту строку кода пропишу в коде индиктаора? через inlude? а конфликта не будет?
Причина обращения: