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

 
Slava #:

Внимательнее читайте документацию

Мы потратили много времени, чтобы написать её. Потратьте немного своего времени, чтобы хотя бы немного прочитать

Ну и поиск тоже никто не отменял. https://www.mql5.com/ru/articles/2744

Спасибо. Понял.

 
Roman #:

Спасибо. Понял.

Подробнее бы))) Вопрос, удалится ли глобальная переменная через 4 дня, если не включать терминал, чем обусловлено удаление.

 

МТ5 при большом количестве тиков рисует бары с отставанием от рынка в диапазоне от нескольких секунд до 10 минут.

При этом окно "Обзор рынка" показывает текущие котировки, а последних баров, им соответствующих, нет.

Открыто 3 окна одного инструмента (Золото), остальные даже в "Обзоре" скрыты.

Вроде каких-то "убойных" индикаторов нет, все на основе мувингов. Единственное нагрузочное - то, что используются очень большие периоды расчета.

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

 
Михалыч Трейдинг #:

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

График и индикатор на нем работают в одном потоке. Если индикатор считается долго - график не успевает "отрисовываться"  между приходами нового тика. Вариантов решения много - можно выбрать наиболее приемлемый для Вас:

1) Рассчитывать индикатор не на каждом тике, а раз в ХХХ мс или только на новом баре. Добавить проверку - если с последнего вызова индикатора прошло меньше ХХХ мс, то return;

2) Рассчитывать значения индикатора 1 раз, запоминать их, и по приходе нового тика делать пересчет (на малую глубину истории);

3) Вынести расчет из индикатора в эксперта. Отрисовку линий выполнить через Canvas - эксперт работает в своем потоке и не будет тормозить график.

В справке - тут

Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Выполнение программ - Программы MQL5 - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Andrey Miguzov #:

Если индикатор считается долго 

Большое спасибо за быстрый и полный ответ! Попрошу программиста посмотреть эти моменты. Но есть несколько "но".

1. Давно торгую и пользовался разными индикаторами - сейчас нет ни одного, который можно было бы назвать тяжелым, чтобы так тормозило, да еще мт5 - при том, что эти же индикаторы, написанные тем же человеком, работают в мт4 без проблем, там даже на одно окно больше открыто (4 окна Золота). Может есть какой-то надежный способ поиска причины тормозов (индикатором или еще чем) кроме метода исключения? Дело в том, что заниматься исключением придется именно в тот момент, когда надо торговать, в другое время всё штатно.

2. У программиста с идентичным шаблоном графика тормозов нет! Как так может быть?

3. В моменте идет 250-300 тиков в минуту и нет тормозов. При том, что тормоза начались когда даже 200 тиков не было. Ниччё не понимаю, никак не ухвачу логику.

 
Михалыч Трейдинг #:

Попрошу программиста посмотреть эти моменты.

Можно в пять строк добавить показ динамики нагрузки советника/индикатора. Будет сразу видно, если проблема в нагрузке.
Usage
Usage
  • www.mql5.com
Расчет вычислительной нагрузки - длительность выполнения расчетов от общего времени.
 
fxsaber #:
Можно в пять строк добавить показ динамики нагрузки советника/индикатора. Будет сразу видно, если проблема в нагрузке.

СПАСИБО!

Вспомнил - еще один вопрос меня мучает: тики МТ получает нормально, вовремя, индикаторы (допустим) не успевает посчитать (на 5К баров в окне???),

а какая связь с неотрисовкой баров??? Пусть бы индикатор не нарисовался, отстал, а бары-то причем?

 
Михалыч Трейдинг #:

99% причина в компетентности программиста. Особенно после перехода с MT4 на MT5. Какие-нибудь индикаторные хендлы генерирует на каждом тике.

В общем, все подобные проблемы тормозов - дело рук кодера.

 
fxsaber #:

99% причина в компетентности программиста. Особенно после перехода с MT4 на MT5. Какие-нибудь индикаторные хендлы генерирует на каждом тике.

В общем, все подобные проблемы тормозов - дело рук кодера.

Все косяки - наших рук дело, это я понял. Не понял только почему бары не рисуются независимо от индикаторов?

Неужели такую важную функцию разработчики увязали с работой индикаторов? Ведь ВСЁ работает! Таймфреймы переключаются без задержек, все окна открываются/закрываются/вызываются и т.д. и т.п. Ну ВСЁ работает, кроме самого важного...

 
Михалыч Трейдинг #:

СПАСИБО!

Вспомнил - еще один вопрос меня мучает: тики МТ получает нормально, вовремя, индикаторы (допустим) не успевает посчитать (на 5К баров в окне???),

а какая связь с неотрисовкой баров??? Пусть бы индикатор не нарисовался, отстал, а бары-то причем?

То, что Вы описываете (неотрисовка баров) явный признак, что работает "тяжёлый" индикатор. Можно и на 100 барах такой цикл намудрить (не специально), что ничего работать не будет. Вариант с тестом Вам предложили отличный.

Бары не прорисовываются из-за того, что график и индикатор работают в одном потоке. Такова парадигма разработчиков - график ждёт, пока индикаторы не обработают все поступающие тики. Иначе может получится ситуация, что индикатор показывает значения по "старым" ценам, а график уже новые. А так всё синхронно. 
Причина обращения: