Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2490

 

Подскажите, пожалста. При первом переключении графика на какой-нибудь из тф, иногда вылетает индикатор на iBarShift, которая возвращает -1. 


При повторном переключении тф, как правило, такого нет.

Как в приличном обществе принято поступать в такой ситуации?

 
Andrei Sokolov #:

Подскажите, пожалста. При первом переключении графика на какой-нибудь из тф, иногда вылетает индикатор на iBarShift, которая возвращает -1. 


При повторном переключении тф, как правило, такого нет.

Как в приличном обществе принято поступать в такой ситуации?

Проверять результат, возвращаемый iBarShift(). Априори практически для всех функций нужно.

 
Artyom Trishkin #:

Проверять результат, возвращаемый iBarShift(). Априори практически для всех функций нужно.

А можно проверить что  iBarShift возвращает больше -1 в ините или до выполнения алгоритма и так чтоб это не повесило индикатор?

 
Andrei Sokolov #:

А можно проверить что  iBarShift возвращает больше -1 в ините или до выполнения алгоритма и так чтоб это не повесило индикатор?

Что далее будете делать, если он вернул -1 в ините? 
 
Artyom Trishkin #:
Что далее будете делать, если он вернул -1 в ините? 

Я не правильно выразился. Я имел ввиду не проверить, а есть ли возможность дождаться чтоб все что нужно  iBarShift прогрузилось до выполнения алгоритма и так чтоб это не повесило индикатор.

 
Andrei Sokolov #:

Я не правильно выразился. Я имел ввиду не проверить, а дождаться чтоб все что нужно  iBarShift прогрузилось до выполнения алгоритма и так чтоб это не повесило индикатор.

Функция возвращает -1 если нет данных. В ините их и не будет… Так-что «ждите пожалуйста ответа»…

 
Alexey Viktorov #:

Функция возвращает -1 если нет данных. В ините их и не будет… Так-что «ждите пожалуйста ответа»…

А как этого ответа ждать так чтоб это не повесило индикатор?

 
Andrei Sokolov #:

А как этого ответа ждать так чтоб это не повесило индикатор?

спокойно ждать..стойко, без истерик

но не в OnInit :-) OnInit, как и любой OnXXX должен завершаться за разумно минимальное время несмотря ни на что.

Есть SeriesInfoInteger - можете ориентироваться по нему, подкачались нужные данные или нет. Или иногда спрашивать свой iBarShift, "нет ли уже нужных данных"

 
Maxim Kuznetsov #:
Или иногда спрашивать свой iBarShift, "нет ли уже нужных данных"

В индикаторе пауза не работает, по этому и спрашиваю: как сделать "иногда", так чтоб это не повесило индикатор? 

 
Maxim Kuznetsov #:

1) называйте переменные читаемо и разумно. 2-3 случайные буквы это не имя..даже не кличка :-) 

2) ВСЕГДА проверяйте результат OrderSend , OrderClose, OrderDelete (и так далее - все операции с ордерами)

3) когда печатаете что-то про ордера - печатайте заодно тикет. 

---

разбирать код который как будто натошнило мало кто будет. 

скорее всего или ордер не отрывается или при чтении вы берёте иной (старый). тем более что читаете из истории - просто промахнулись

Cпасибо за ценную информацию.