Новая версия MetaTrader 4 Client Terminal 392 - страница 8

 
tara:

А можно(?):

1. Уточнить, что такое "предыдущее число посчитанных баров"(что значит, посчитанных?).

2. Кратко описать алгоритм выполнения этой функции.

Пользуйтесь поиском, он экономит время


 
Rosh:

Не усложняйте. На каждом запуске функции start() индикатору доступно определенное количество баров. Допустим, на предыдущем запуске было доступно 5000 баров, а на текущем доступно 5001 бар. Значит на текущем запуске индикатора IndicatorCounted() вернет 5000. А сколько реально баров в индикаторе было обсчитано - то Ваша проблема. ПишИте свой код так, чтобы он правильно работал на основании предоставленной информации о доступных барах и более ничего не надо.
То есть, если я правильно Вас понял, функция IndicatorCounted (https://docs.mql4.com/ru/customind/IndicatorCounted) полностью дублирует функцию iBars которая лишь возвращает доступное количество баров на определенном графике и значит никак не связана с реально просчитанными барами для построения экономных и оптимальных вычислений в индикаторе как утверждается в справке?
 
Andrei01:
То есть, если я правильно Вас понял, функция IndicatorCounted() полностью дублирует функцию iBars которая лишь возвращает доступное количество баров на определенном графике и значит никак не связана с реально просчитанными барами для построения экономных вычислений в индикаторе?
Вы же читаете по-русски. Воспользуйтесь хотя бы поиском, чтобы понять. Иначе придется забанить за "наивные" вопросы.
 
Andrei01:
То есть, если я правильно Вас понял, функция IndicatorCounted (https://docs.mql4.com/ru/customind/IndicatorCounted) полностью дублирует функцию iBars

Абсолютно неправильно.

Посмотрите на код штатных индикаторов в поставке терминала и подумайте, как используется IndicatorCounted.

 

Господа разработчики. На 5 странице задавал вопрос по поводу сообщения.


Подробнее это выглядит так. Запускаю МТ4,первые два запуска выскакивает это сообщение и МТ4 не запускается . После третьей попытки запускается нормально и работает всё как должно быть. Так работает две разные установки терминала в разных папках.

Проверял на вирусы,ничего,процессы все как и всегда. Отладчики не работают никакие, В памяти он (терминал) при ошибке не сидит, выгружается сам.

Всё это началось после обновления на билд 392. Подскажите хоть,что ещё проверить.

 

Вы используете Windows 2000 без виртуализаторов? Или под VirtualBox?

Попробуйте поставить все сервиспаки на Windows 2000.

 
Renat:

Вы используете Windows 2000 без виртуализаторов? Или под VirtualBox?

Попробуйте поставить все сервиспаки на Windows 2000.

Ничего необычного нет. Обыкновенный Win 2000 SP4. Я с терминалом на нём работаю несколько лет и проблем не было.

Если я единственный с таким багом,то вина моя . Буду искать. Спасибо.

 
Renat:

Абсолютно неправильно.

Посмотрите на код штатных индикаторов в поставке терминала и подумайте, как используется IndicatorCounted.

Ок. Спасибо.

Пока что пришел к такому выводу: функция IndicatorCounted() при определенных условиях сброса (к сожалению не нашел этот список и это интересный момент) однократно просчитывает весь индикатор по всей длине заложенной в алгоритм в начальный момент, а потом с приходом нового бара изменяется на единицу чтобы просчитать только текущий бар.

Если это предположение верно, то сразу напрашиваются особые случаи когда эта логика не будет срабатывать и тогда применять эту функцию уже нельзя, хотя в большинстве расчетов это должно работать без проблем.

 

Уважаемые разработчики, подскажите где правда?

В MQLEditor, в справочном материале окна навигатора про функцию StringSetChar() написано:

string StringSetChar( string text, int pos, int value)

А после того как напечатаешь эту функцию в окне редактора, то вспылающая подсказка гласит:

bool StringSetChar( string text, int pos, int value)

И кто из них прав?

 
Alexandr27:

Уважаемые разработчики, подскажите где правда?

В MQLEditor, в справочном материале окна навигатора про функцию StringSetChar() написано:

string StringSetChar( string text, int pos, int value)

А после того как напечатаешь эту функцию в окне редактора, то вспылающая подсказка гласит:

bool StringSetChar( string text, int pos, int value)

И кто из них прав?

Справочник прав, конечно! Это ещё одна ошибка редактора. Много ещё таких в МЭ4.
Причина обращения: