[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 323
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Поэтому и ошибки специально делаешь.
А специально, это прикольно... я бы рад увидеть эту ошибку да только не могу, её найти.
Я некоторые функции, запускаю пробно как скрипт, нет ли ошибок при компиляции и какие, чтобы проверить работает или нет в терминале. Взял сегодня Функцию предварительного подсчёта баров в окне:
Естественно, выходит сообщение *Недостаточно баров*, но при новом тике я понимаю вновь до бесконечности будет появляться это сообщение.
Теперь я добавляю переменную и дописываю оператор if, а также в будущем блоке обработок ошибок Bloc_Error, всталяю оператор switch получается это:
Вопрос такой что я тут неправильно наплёл в операторе switch, почему не вылазиет сообщение *Эксперт не работает*, и чтобы действительно советник прекращал работу?????Всем, привет!
Не могу понять причину появления ошибки при работе советника. Тестирую один советник на 11 парах в одном терминале одновременно (демо-счет). Проверка условий на вход происходит в начале каждого часа, т.е. 11 советников начинают работать одновременно. Чтобы они друг другу не мешали используется функция IsTradeBusy() (отсюда https://www.mql5.com/ru/articles/1412). В последнее время вместо открытия позиции советник сообщает об ошибке при попытке изменить значение глоб.переменной TradeIsBusy. Вот часть кода:
Коды ошибок:
#4002 - "индекс массива - вне диапазона"
#4105 - "Ни один ордер не выбран"
Не понимаю, при каких условиях эти ошибки могут формироваться командой GlobalVariableSetOnCondition?
Терминал Broco Trader 4.0 build 225.
Может так глючить терминал ?
Спасибо, разберусь.
Всем, привет!
Не могу понять причину появления ошибки при работе советника. Тестирую один советник на 11 парах в одном терминале одновременно (демо-счет). Проверка условий на вход происходит в начале каждого часа, т.е. 11 советников начинают работать одновременно. Чтобы они друг другу не мешали используется функция IsTradeBusy() (отсюда https://www.mql5.com/ru/articles/1412). В последнее время вместо открытия позиции советник сообщает об ошибке при попытке изменить значение глоб.переменной TradeIsBusy. Вот часть кода:
Коды ошибок:
#4002 - "индекс массива - вне диапазона"
#4105 - "Ни один ордер не выбран"
Не понимаю, при каких условиях эти ошибки могут формироваться командой GlobalVariableSetOnCondition?
Терминал Broco Trader 4.0 build 225.
Может так глючить терминал ?
По данному куску кода сказать ничего нельзя. И как совет. В начале функции сбрасывать состояние последней ошибки. Она может возникать и в другом месте
Как сделать перенос строки в тексте? Например я вывожу что-то на графике, в OBJ_LABEL, и хочу чтобы текст писался в несколько строк.
Как сделать перенос строки в тексте? Например я вывожу что-то на графике, в OBJ_LABEL, и хочу чтобы текст писался в несколько строк.
Выводить в несколько лейблов.
А если количество строк меняется динамически? И может быть весьма большим. Может что-то другое можно использовать вместо лэйбла?
И еще вот такой вопрос: допустим у меня скрипт который в бесконечном цикле что-то делает с задержкой например в секунду. Я когда пытаюсь его убрать - выбираю "удалить скрипт", он не снимается с графика, а начинает тарабанить вообще такое ощущение что без задержки. Жму еще раза "удалить" - и вот тогда убирается. В чем дело? Может что-то надо в код дописать чтобы корректно завершался?
А если количество строк меняется динамически? И может быть весьма большим. Может что-то другое можно использовать вместо лэйбла?
Alert, как вариант. Comment -- пожалуй подойдет.
И еще вот такой вопрос: допустим у меня скрипт который в бесконечном цикле что-то делает с задержкой например в секунду. Я когда пытаюсь его убрать - выбираю "удалить скрипт", он не снимается с графика, а начинает тарабанить вообще такое ощущение что без задержки. Жму еще раза "удалить" - и вот тогда убирается. В чем дело? Может что-то надо в код дописать чтобы корректно завершался?
Замените while(true) на while(!IsStopped())
А если количество строк меняется динамически? И может быть весьма большим. Может что-то другое можно использовать вместо лэйбла?
Нет. Если, конечно, comment не подходит. Напишите ф-ю, где будет производиться вывод, и пишите, что вам нужно через нее.
И еще вот такой вопрос: допустим у меня скрипт который в бесконечном цикле что-то делает с задержкой например в секунду. Я когда пытаюсь его убрать - выбираю "удалить скрипт", он не снимается с графика, а начинает тарабанить вообще такое ощущение что без задержки. Жму еще раза "удалить" - и вот тогда убирается. В чем дело? Может что-то надо в код дописать чтобы корректно завершался?
Так и должно быть.