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

 

Пожалуйста подскажите что делать с роботом? Тест обрывается в любом терминале у любого брокера за три месяца до конца тестирования. Никаких остановок у робота нет , а тест останавливается....

Замаялся....


 
Stanislav Korotky:

Как открыть демо-счет МТ4 на MetaQuotes Demo? Раньше работало без проблем, сейчас на последней странице диалога пишет: Registration, Wait a little, please, и в таком состоянии бездействует бесконечно, поля с логином и паролем остаются пустыми. Никаких сообщений в логе. Пробовал и "демо", и "реал", и разные типы счетов.

UPD. Попробовал демо одного брокера - та же фигня.

проверил, на сервере Метаквот тоже не регистрируется новый демо, на робофорекс без проблем зарегистрировал новый демо


Mihail Matkovskij:

При этом появляется ошибка 4401.

ошибку в справке посмотрите

и дело не в конкретном вызове функции, а в очередности, поменяйте местами, ошибка перейдет на другой участок - чарт не готов, потом Вы инициировали построение истории и при повторном вызове, история может быть уже готова, как в прочем может быть и не готова


в индикаторах доступ к истории асинхронный, если история не готова, то возвращается ошибка и история подготавливается, Sleep() в индикаторах тоже не работает, поэтому если получили ошибку, то на следующем тике еще раз читайте историю, в кодобазе поиском "мультисимвольный" или "мультипериодный" индикатор найдите и посмотрите как читают историю с другого ТФ или символа, принципы те же

 
Stanislav Korotky:

Как открыть демо-счет МТ4 на MetaQuotes Demo? Раньше работало без проблем, сейчас на последней странице диалога пишет: Registration, Wait a little, please, и в таком состоянии бездействует бесконечно, поля с логином и паролем остаются пустыми. Никаких сообщений в логе. Пробовал и "демо", и "реал", и разные типы счетов.

UPD. Попробовал демо одного брокера - та же фигня.

Закрытие MetaQuotes Demo Server

MetaQuotes Software Corp.

4 марта 2009

5 апреля 2009 года сервер «demo.metaquotes.net» будет остановлен. При этом History Center с минутной историей продолжит работу.

С этого дня наша компания отказывается от использования демонстрационного сервера. В настоящее время количество компаний, работающих на платформе MetaTrader 4, настолько велико, что мы не видим необходимости в содержании собственного сервера.

 
Igor Makanu:

ошибку в справке посмотрите

и дело не в конкретном вызове функции, а в очередности, поменяйте местами, ошибка перейдет на другой участок - чарт не готов, потом Вы инициировали построение истории и при повторном вызове, история может быть уже готова, как в прочем и не готова

Но почему с iBars(symbol, timeframe) история оказывается неготова, а с iBars(Symbol(), Period()) вполне нормальная? И происходит это только при перезапуске терминала, а не всегда. И пременные-члены symbol, timeframe инициализируются корректно, в разделе инициализации (сам лично проверял).

Попробуйте потеснить мой пример: https://c.mql5.com/3/324/Test.mq5 

Последовательность действий:

1. Бросить скомпилированный файл на график. Получаемые при этом сообщения: 

2020.06.24 21:05:50.773 Loader::Loader symbol: EURUSD timeframe: PERIOD_H1

2020.06.24 21:05:50.773 Loader::Loader bars: 140433

2020.06.24 21:05:50.773 Loader::Loader Error: 0

2020.06.24 21:05:50.773 Loader::Loader bars (2): 140433

2. Завершить работу терминала и снова запустить его. Сообщения в журнале будут следующие:

2020.06.24 21:07:34.963 Loader::Loader symbol: EURUSD timeframe: PERIOD_H1

2020.06.24 21:07:34.963 Loader::Loader bars: 0

2020.06.24 21:07:34.963 Loader::Loader Error: 4401

2020.06.24 21:07:34.964 Loader::Loader bars (2): 140433

 
Mihail Matkovskij:

Но почему с iBars(symbol, timeframe) история оказывается неготова, а с iBars(Symbol(), Period()) вполне нормальная? И происходит это только при перезапуске терминала, а не всегда. И пременные-члены symbol, timeframe инициализируются корректно, в разделе инициализации (сам лично проверял).

еще раз... местами поменяйте эти 2 строки и добейтесь воспроизведения

я могу ошибаться, но думаю, что будет как я писал постом выше - подробнее не могу/ не умею

 
MakarFX:

@Artyom Trishkin

Вы модератор в этой ветке?

Не только

 
Artyom Trishkin:

Не только

Как узнать кто меня вчера забанил?
 
Mihail Matkovskij:

Но почему с iBars(symbol, timeframe) история оказывается неготова, а с iBars(Symbol(), Period()) вполне нормальная? И происходит это только при перезапуске терминала, а не всегда. И пременные-члены symbol, timeframe инициализируются корректно, в разделе инициализации (сам лично проверял).

Попробуйте потеснить мой пример: https://c.mql5.com/3/324/Test.mq5 

Последовательность действий:

1. Бросить скомпилированный файл на график. Получаемые при этом сообщения: 

2. Завершить работу терминала и снова запустить его. Сообщения в журнале будут следующие:

Исторические данные являются актуальными в пределах двух минут. Для постоянного поддержания их в "горячем" состоянии необходимо не менее раза в две минуты обращаться к неродному символу/периоду.

При первом обращении к историческим данным из индикатора, при условии недостаточности локальных данных, начинается подгрузка данных и функция возвращает ошибку. При этом нужно выйти из OnCalculate() с возвратом нуля - чтобы на следующем тике не было данных в переменной prev_calculates - она указывает количество уже посчитанных данных на прошлом заходе в обработчик OnCalculate(). Как только данные будут загружены в достаточном количестве, вы перестанете получать ошибку доступа к данным, и можете дальше работать в OnCalculate().

И ещё: нельзя из индикатора обращаться ко всем функциям, которые инициируют подгрузку исторических данных, если вы пробуете запросить в них данные текущего символа и периода - это с большой вероятностью может привести к клинчу. Используйте данные rates_total для получения количества баров истории.

Всё это много раз рассказывалось на форуме и отображено в документации.

Не хочу искать, но хорошо помню где сам это всё описывал со ссылками на источники.

 
MakarFX:
Как узнать кто меня вчера забанил?
Никак.
 
Artyom Trishkin:
Никак.

Очень жаль(

Этот не хороший человек, из-за невнимательности, без оснований меня забанил.