Ошибки, баги, вопросы - страница 2458
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
При переходе с MQL4 на MQL5 столкнулся с глюком:
код:
ResetLastError();
int ObjTotal = ObjectsTotal(0);
int Error = GetLastError();
возвращает:
ObjTotal = 0
Error = 4022
Что это за ошибка, почему ее нет в документации?
Пробовал разные варианты: ObjectsTotal(0, -1, -1), ObjectsTotal(ChartID(), 0, OBJ_TREND) и т.д.
Результат тот-же.
Как заставить это работать?
Совет: хотите что-то спросить - вставляйте ПОЛНЫЙ код, а не кусок.
В чём смысл: любой человек берёт Ваш код и запускает у себя. А кусочный код практически никто не смотрит - кусочный код - это неуважение.
Пример Вашего кода:
Запускаем на графике на котором нет ни одного графического объекта. Результат:
То есть никакой ошибки нет.
Использую терминал:
Совет: хотите что-то спросить - вставляйте ПОЛНЫЙ код, а не кусок.
Спасибо за совет, так и буду делать.
Тем не менее, вопрос остается открытым.
Уточнение: если кусок кода из предыдущего поста находится в функции OnDeinit() индикатора, то результат такой:
2019.05.10 14:08:20.105 PtS (EURUSD,H1) ObjectsTotal: 0, GetLastError: 4022
Если тот же код запустить после удаления индикатора с графика, как скрипт (1.mq5 из предыдущего поста), то получаем:
2019.05.10 14:08:33.609 1 (EURUSD,H1) ObjectsTotal: 8575, GetLastError: 0
Помогите разобраться с причиной.
ошибка в тестере стратегий при оптимизации.
"task rejected by tester agent "
Например, если валюта счета EUR,
Если валюта счета - доллар США,
появляется при использовании в коде других валютных пар.
конкретно на моем примере - это использование расчета динамического лота
т.е. когда советник запрашивает цену другой валюты.
@Vladislav Andruschenko
Привет, вы получили какой-либо ответ или решение этой проблемы?
При смене графика / периода PBB получает значение 10, не зависимо от того какое значение вы указали в поле ввода.
В момент переинициализации происходит так как будто это первый запуск.
Решить Вашу задачу можно двумя спсобами
1 - хранить значение PBB в глобальных переменных терминала и получать период оттуда
2 - В момент срабатывания ОнЧартЕвент делать переинициализацию индикатора MA и получать новый хендл...
Проверил все варианты. Не работает.
Недоработка в программе MQL5.
Не инициализируются новые значения. Только с параметром input int PBB_=. Других вариантов нет. Совсем плохо.
Проверил все варианты. Не работает.
Недоработка в программе MQL5.
Не инициализируются новые значения. Только с параметром input int PBB_=. Других вариантов нет. Совсем плохо.
В MQL все хорошо, просто Вы не понимаете что делаете в коде и как все работает...
Еще раз повторяю, при вызове ChartSetSymbolPeriod(0,_Symbol,_Period);
Вы сбрасываете все на по умолчанию...
Как вариант попробуйте в ините запросить значение из Вашего текстового поля.
По логике получится так, первый запуск индикатора все создается а при смене данных в поле будет новый вызов инита и установка значения из Вашего текстового поля...
В MQL все хорошо, просто Вы не понимаете что делаете в коде и как все работает...
Еще раз повторяю, при вызове ChartSetSymbolPeriod(0,_Symbol,_Period);
Вы сбрасываете все на по умолчанию...
Как вариант попробуйте в ините запросить значение из Вашего текстового поля.
По логике получится так, первый запуск индикатора все создается а при смене данных в поле будет новый вызов инита и установка значения из Вашего текстового поля...
Пробовал и из текстового поля и через GlobalVariable и что только не пробовал. Глухо как в танке.
В другом варианте OnCalculate работает без проблем.
Пробовал и из текстового поля и через GlobalVariable и что только не пробовал. Глухо как в танке.
В другом варианте OnCalculate работает без проблем.
Значит что то не то делаете
Значит что то не то делаете
Так уже код выложил.
Если Я неумека, кто то должен быть профи. Покуда не вижу.
Принимаю ваше старание найти ответ. Тут глубже в понимании. Т.е. на уровне разработчиков.