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

 
satorifx:

Добрый день.

Вопрос такого плана...

В MQL4 в хелпе было четко сказано, что если из разных мест кода вызывать с помощью iCustom один и тот же индикатор с одним и тем же набором входных параметров, то при первом вызове копия индикатора создается в памяти, индикатор просчитывается (можно получать от него данные), при последующих вызовах того же индикатора с тем же набором входных параметров новая копия индикатора в памяти не создается, просто забираются данные из уже созданного и рассчитанного индикатора.

Вопрос: как с этим обстоит дело в MQL5?
Вопрос возник вот из чего:

Есть советник, котоорый через iCustom вызывает расчет двух индикаторов (назовем их "Индикатор А" и "Индикатор Б"). При этом сам "Индикатор Б" в своем коде так же вызывает расчет "Индикатора А" с тем же набором входных параметров. При этом на закладке "Журнал" МТ5 выдается 3 сообщения: одно о загрузке "Индикатора Б" и 2 о загрузке "Индикатора А". Значит ли это, что "Индикатор А" просчитывается дважды?

Пытался распечатать хендлы индикаторов, которые получаются при вызовах iCustom - толку никакого - судя по всему для каждого отдельного кода нумерация хендлов своя (локальная), поэтому сравнение хендлов ничего не дает.

В MQL5 любой индикатор нужно создавать один раз путем получения хендла индикатора. И делать это нужно в OnInit().

[Удален]  
DKarpoff:

Вот все что нашел в справке про дни недели:

Для указания дня недели предназначены значения перечисления ENUM_DAY_OF_WEEK.


Есть перечисление, но где оно используется непонятно... ткните носом если есть.

TimeToStruct() Вам поможет )))

 
Vladimir Karputov:

В MQL5 любой индикатор нужно создавать один раз путем получения хендла индикатора. И делать это нужно в OnInit().

То, что вы ответили, мне прекрасно известно, и именно так и сделано: как в эксперте, так и во всех индикаторах. А спрашивал я совсем не об этом.

 
Сергей Таболин:

TimeToStruct() Вам поможет )))

Спасибо тебе добрый человек =) То что надо!

 

Добрый день.

Пара вопросов по тестеру в МТ5:

1) В МТ5 в режиме визуального тестирования эксперта все индикаторы, которые в коде эксперта рассчитываются через iCustom, сами наносятся на график. Это как-то отключается/настраивается?

2) Делаю одиночный прогон в тестере со включенной галкой "визуальный режим с отображением графиков, индикаторов и торговли", а потом тот же прогон с выключенной галкой (без визуализации). При этом в первом случае график баланса рисуется вполне обычно, во втором случае - просто прямая линия на несколько клеток, и все. С чем это может быть связано?

 
satorifx:

Добрый день.

Пара вопросов по тестеру в МТ5:

1) В МТ5 в режиме визуального тестирования эксперта все индикаторы, которые в коде эксперта рассчитываются через iCustom, сами наносятся на график. Это как-то отключается/настраивается?


1. TesterHideIndicators().

Документация по MQL5: Общие функции / TesterHideIndicators
Документация по MQL5: Общие функции / TesterHideIndicators
  • www.mql5.com
Задает режим показа/сокрытия индикаторов, которые используются в эксперте. Функция предназначена для управления видимостью используемых индикаторов только при тестировании. По умолчанию на графике визуального тестирования показываются все индикаторы, которые создаются в тестируемом эксперте.  Также эти индикаторы показываются на графике...
 
Как различить события удаление графического объекта и переименование графического объекта. В обоих случаях генерируется событие удаления. Как отличить одно от другого?
 
leonerd:
Как различить события удаление графического объекта и переименование графического объекта. В обоих случаях генерируется событие удаления. Как отличить одно от другого?

Никак. Переименование это и есть, удаление и создание нового. Вот и пытайтесь отловить создание после удаления.

 
Комментарии, не относящиеся к этой теме, были перенесены в "Вопросы от начинающих MQL4 MT4 MetaTrader 4".
 

Подскажите, что прописать, чтобы получать random 6-значные числа?

int Random() {
 int r=MathRand(); // 100000 -> 999999
  return(r);
 }