Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1190
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Закрытие MetaQuotes Demo Server
MetaQuotes Software Corp.
4 марта 2009
5 апреля 2009 года сервер «demo.metaquotes.net» будет остановлен. При этом History Center с минутной историей продолжит работу.
С этого дня наша компания отказывается от использования демонстрационного сервера. В настоящее время количество компаний, работающих на платформе MetaTrader 4, настолько велико, что мы не видим необходимости в содержании собственного сервера.
Это какая-то древность (упоминается другой сервер). В этом году неоднократно, последний раз месяц назад на MetaQuotes-Demo был нормально создан новый демо-счет.
Кроме того, если сервер удален почему он показывается и пингуется в мастере открытия счета? Затык происходит только на последнем шаге.
При первом обращении к историческим данным из индикатора, при условии недостаточности локальных данных, начинается подгрузка данных и функция возвращает ошибку.
Это я прекрасно понимаю. Если бы дело было в недостатке баров в истории, то обе функции вернули бы 0. А так одна возвращает 0, а вторая корректно возвращает количество баров в истории. При чем вызываются они одна за другой:
Только данные берутся, в первом случае уже из готовых преременных-членов (symbol и timeframe) класса Loader (корректно проинициализированых), а во втором с функций Symbol() и Period() (которые дают точно такие же значения, как было записано в symbol и timeframe). Значения переменных идентичны значениям функций (я проверял). Но где косячит iBars(symbol, timeframe) с абсолютно корректными symbol и timeframe, мне не ясно. При том что iBars(Symbol(), Period()) не косячит. Вот я и решил, что где-то ошибка в самой работе терминала или неправильная компиляция исходника.
Это я прекрасно понимаю. Если бы дело было в недостатке баров в истории, то обе функции вернули бы 0. А так одна возвращает 0, а вторая корректно возвращает количество баров в истории. При чем вызываются они одна за другой:
Только данные берутся, в первом случае уже из готовых преременных-членов (symbol и timeframe) класса Loader (корректно проинициализированых), а во втором с функций Symbol() и Period() (которые дают точно такие же значения, как было записано в symbol и timeframe). Значения переменных идентичны значениям функций (я проверял). Но где косячит iBars(symbol, timeframe) с абсолютно корректными symbol и timeframe, мне не ясно. При том что iBars(Symbol(), Period()) не косячит. Вот я и решил, что где-то ошибка в самой работе терминала.
А теперь запишите вот так, как Игорь посоветовал:
И не забывайте, что это конструктор класса, а он вызывается ещё до инициализацииЭто я прекрасно понимаю. Если бы дело было в недостатке баров в истории, то обе функции вернули бы 0. А так одна возвращает 0, а вторая корректно возвращает количество баров в истории. При чем вызываются они одна за другой:
Вы придумали какую то историю
затем решили эту историю оформить в виде претензии и затем в вопрос
что пишет справка по ошибке 4401 ?
что я писал?
Вы понимаете разницу между недостатком баров и неготовностью чарта?
у Вас же ситуация после перезагрузки терминала с запуском индикатора, причем данные Вы запрашиваете в глобальной инициализации MQL-программы (конструктор класса), которая будет выполнена до ОнИнит()
ушел, пишете быстрее чем читаете, поиском по форуму 4401 - все ответы
У меня лот высчитывается так
стоит в начале советника...и ставил в самый конец кода
Когда идет обращение в функции OnTick к переменной Lots, то советник находит и пересчитывает.
Не может быть такого. У вас идёт объявление и инициализация, переменной Lots присваивается выражение.
Такое присваивание может быть выполнено один раз при запуске, не может быть такого чтобы каждый раз при обращении к Lots автоматически присваивалось выражение. Не слышал что mql был на такое способен.
Не может быть такого. У вас идёт объявление и инициализация, переменной Lots присваивается выражение.
Такое присваивание может быть выполнено один раз при запуске, не может быть такого чтобы каждый раз при обращении к Lots автоматически присваивалось выражение. Не слышал что mql был на такое способен.
Я проверял, при изменении баланса, лот тоже меняется
Ничего себе я проверю. Я знаю что можно инициализировать функциями переменные с элементами массивов не прокатывает но что оно автоматически меняется не знал, мне кажется в с++ тоже нет такого я проверю потом.
И не забывайте, что это конструктор класса, а он вызывается ещё до инициализации
Это если объект автоматический. А я создаю его с помощью ключевого слова new (в OnInit()) и удаляю с помощью ключевого слова delete (в OnDeinit()). То есть, использую указатель на объект типа Loader. Но на счёт таких подробностей, думаю, вы в курсе... Поэтому, создаётся loader в OnInit() и тут не может быть ошибки.
Если вы имеете в виду, поменять функции местами, то пробовал я и так, результат всё тот же. Только сообщения идут в другой последовательности :)
Результат:
2020.06.24 23:10:48.568 Loader::Loader symbol: EURUSD timeframe: PERIOD_H1
2020.06.24 23:10:48.568 Loader::Loader bars (2): 140435
2020.06.24 23:10:48.568 Loader::Loader bars: 0
2020.06.24 23:10:48.568 Loader::Loader Error: 4401
Вы придумали какую то историю
затем решили эту историю оформить в виде претензии
Никаких претензий! И в чём же выдумка, если я предоставил исходник и даже расписал последовательность действий для тестирования его работы? Очевидно, Вы меня неправильно поняли...
причем данные Вы запрашиваете в глобальной инициализации MQL-программы (конструктор класса), которая будет выполнена до ОнИнит()
ушел, пишете быстрее чем читаете, поиском по форуму 4401 - все ответы
Не должна она выполняться до OnInit(), написал в предыдущем посте. Это Вы невнимательно читаете, как посты, так и код исходника, который я добавил для тестирования.
Это какая-то древность (упоминается другой сервер). В этом году неоднократно, последний раз месяц назад на MetaQuotes-Demo был нормально создан новый демо-счет.
Кроме того, если сервер удален почему он показывается и пингуется в мастере открытия счета? Затык происходит только на последнем шаге.