Но вот пришлось т.к. щяс замороченный алгоритм пишу и постоянно перелопачивать определённые операции не вариант. Как удалить индюк с графика я уже понял. Есть же функция ChartIndicatorDelete()
Тока всё-равно, чушь какая-то получается. Объясню что я думаю. Например, вот типа OnInit() такой абстрактный:
int OnInit(){ строка 1 строка 2 строка 3 .. строка 4 .. строка 5 }
Все варианты того, что возвращает метод инициализации некчемный в полном смысле этого слова. Это не упрёк разработчикам, а даже совет.
По логике, если возврат из OnInit() будет, например, INIT_FAILED, то по логике нужно выгрузить всё с графика. Дальше нет резона уже продолжать что-то делать. Иначе получается абсурд. Например, делать так:
IndicatorSetString(INDICATOR_SHORTNAME, "m_IndicatorName"); MqlParam inputParameters[]; setInputParameters(inputParameters, "_myIndicators/ZigZag_HightLow_MTF", i_ZZ_tf); if (!createHandle(inputParameters)) { ChartIndicatorDelete(0, 0, "m_IndicatorName"); return INIT_FAILED; }
Абсурд в том, что строка:
ChartIndicatorDelete(0, 0, "m_IndicatorName");
здесь как-бы лишняя. Должно быть по уму сразу выгружение всего, т.к. инициализация увенчалась провалом..
Неа. Не вернулись)) Сергей, здесь вопрос другой. Я как-бы не сторонник использования индикаторов, поэтому особо с ними не работаю.
Но вот пришлось т.к. щяс замороченный алгоритм пишу и постоянно перелопачивать определённые операции не вариант. Как удалить индюк с графика я уже понял. Есть же функция ChartIndicatorDelete()
Тока всё-равно, чушь какая-то получается. Объясню что я думаю. Например, вот типа OnInit() такой абстрактный:
Все варианты того, что возвращает метод инициализации некчемный в полном смысле этого слова. Это не упрёк разработчикам, а даже совет.
По логике, если возврат из OnInit() будет, например, INIT_FAILED, то по логике нужно выгрузить всё с графика. Дальше нет резона уже продолжать что-то делать. Иначе получается абсурд. Например, делать так:
Абсурд в том, что строка:
здесь как-бы лишняя. Должно быть по уму сразу выгружение всего, т.к. инициализация увенчалась провалом..
Если увенчалась провалом, то можно попробовать ещё несколько попыток инициализации.
Нынешний алгоритм работает правильно!
Если увенчалась провалом, то можно попробовать ещё несколько попыток инициализации.
Нынешний алгоритм работает правильно!
По логике, если возврат из OnInit() будет, например, INIT_FAILED, то по логике нужно выгрузить всё с графика. Дальше нет резона уже продолжать что-то делать. Иначе получается абсурд. Например, делать так:
всё выгружается, если указано
#property strict
всё выгружается, если указано
#property strict
В MT5 это тоже работает?
В MT5 это тоже работает?
проверил - таки да, НЕ работает в МТ5
...индикатор висит дальше, "странная логика разработчиков" )
в МТ4 удаляется сразу, и пишется сообщение в лог
проверил - таки да, НЕ работает в МТ5
...индикатор висит дальше, "странная логика разработчиков" )
в МТ4 удаляется сразу, и пишется сообщение в лог
Про "работает" вспомнил анекдот:
Два полицейских едут в машине. Один говорит:
- Что-то у нас мигалка глючит. Глянь, она работает?
Второй высовывается из окна, смотрит на крышу:
- Работает - не работает, работает - не работает...
Про "работает" вспомнил анекдот:
Два полицейских едут в машине. Один говорит:
- Что-то у нас мигалка глючит. Глянь, она работает?
Второй высовывается из окна, смотрит на крышу:
- Работает - не работает, работает - не работает...
еще проверил - не работает)
В MT5 это тоже работает?

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Обычно, я выгружаю бот, при невозможности создания хэндла индюка с которым нужно работать так прописав такие строки в OnInit():
Всё работает кк и нужно.
Попробывал подобное в индикаторе и.. не работает. Хотя, в справке написано, что подобное не рекомендуется, но что это не работаает.. не сказано. А мне, в общем-то, не важно, что это приостановит поток, т.к. если индюк не инициализировался, то и торговать не будет бот. Тем более, как я понимаю, потом приостановится только для этого индюка, а не для всех в терминале.
Поэтому это странно.
Я переписал иначе:
Всё-равно, индикатор не выгружается.Как заставить его выгрузится в случает не успешной инициализации? Ведь это не адекватно. Зачем индюку висеть на графике, если он не смог инициализироваться? Например, у меня есть индикатор, который используется в другом для расчёта и разрисовки уровней. Если первый не инициализировался, то другой уже не покажет нужных значений...