2020.12.3015:25:38.629 Experts automated trading is enabled
2020.12.3015:25:39.159 Test1 (EURUSD,M1) 4752 Торговля для эксперта запрещена
2020.12.3015:25:40.297 Test1 (EURUSD,M1) 4752 Торговля для эксперта запрещена
2020.12.3015:25:40.397 Test1 (EURUSD,M1) 4752 Торговля для эксперта запрещена
2020.12.3015:25:40.499 Test1 (EURUSD,M1) 4752 Торговля для эксперта запрещена
2020.12.3015:25:40.725 Test1 (EURUSD,M1) 4752 Торговля для эксперта запрещена
2020.12.3015:25:42.781 Test1 (EURUSD,M1) 4752 Торговля для эксперта запрещена
2020.12.3015:25:43.129 Test1 (EURUSD,M1) 4752 Торговля для эксперта запрещена
2020.12.3015:25:43.758 Experts automated trading is disabled
Результат должен быть таким:
2020.12.3015:29:58.406 Experts automated trading is enabled
2020.12.3015:30:02.247 Test1 (EURUSD,M1) 4756 Не удалось отправить торговый запрос
2020.12.3015:30:02.368 Test1 (EURUSD,M1) 4756 Не удалось отправить торговый запрос
2020.12.3015:30:02.486 Test1 (EURUSD,M1) 4756 Не удалось отправить торговый запрос
2020.12.3015:30:04.320 Experts automated trading is disabled
Очевидно, всегда должен ArraySize(Arr)=1. Это в случае успешного копирования. Но в каких случаях копирование бара может не произойти? Ведь когда вылезает ошибка "array out of range", терминал указывает на Arr[0].
x572intraday: Очевидно, всегда должен ArraySize(Arr)=1. Это в случае успешного копирования. Но в каких случаях копирование бара может не произойти? Ведь когда вылезает ошибка "array out of range", терминал указывает на Arr[0].
Отловил-таки ошибку, цитата из справки:
4401
Запрашиваемая история не найдена
Принтовал в Журнал — получил:
2020.12.3114:45:20.474 test (EURUSD,H2) ArraySize(Arr)=0; copied=-1; TF=PERIOD_H22020.12.3114:45:20.474 test (EURUSD,H2) Error Code = 4401
Что теперь с ней делать, куда идти? У меня ли кривые руки или?.. Я ведь копирую всего один бар с 0-го по 1-й. Как его (истории) может не быть? Тем более, что ошибка вылезает далеко не всегда. Или предварительно надо как-то принудительно проверять и подгружать историю?
То есть это не я промазал мимо диапазона массива, а многострадальная история почему-то не всегда якобы подгружается. Я всегда думал, что история подгружается слева и при неполной загрузке её может не хватить. Но чтобы не хватало истории справа (новые бары) — это для меня нонсенс! Тем паче у меня ArraySetAsSeries=false, если это вообще имеет значение.
Так это не код программы, а результат Print'а в Журнале терминала. А вот и сам код:
То есть это не я промазал мимо диапазона массива, а многострадальная история почему-то не всегда якобы подгружается. Я всегда думал, что история подгружается слева и при неполной загрузке её может не хватить. Но чтобы не хватало истории справа (новые бары) — это для меня нонсенс! Тем паче у меня ArraySetAsSeries=false.
У меня строка вывода Arr[0] специально закомментирована (см. выше), так как при попытке вывести её в Журнал дело не доходит до сообщения об ошибке 4401, а всё заканчивается выводом ошибки "array out of range".
Ошибки компиляции - Коды ошибок и предупреждений - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
У меня строка вывода Arr[0] специально закомментирована (см. выше), так как при попытке вывести её в Журнал дело не доходит до сообщения об ошибке 4401, а всё заканчивается выводом ошибки "array out of range".
При запуске советника когда алготрейдинг отключен и последующее включение алготрейдинга:
Согласно коду ошибки запрет на торговлю остаётся, хотя свойство TERMINAL_TRADE_ALLOWED равняется true
Результат должен быть таким:
Очевидно, всегда должен ArraySize(Arr)=1. Это в случае успешного копирования. Но в каких случаях копирование бара может не произойти? Ведь когда вылезает ошибка "array out of range", терминал указывает на Arr[0].
Отловил-таки ошибку, цитата из справки:
4401
Запрашиваемая история не найдена
Принтовал в Журнал — получил:
Что теперь с ней делать, куда идти? У меня ли кривые руки или?.. Я ведь копирую всего один бар с 0-го по 1-й. Как его (истории) может не быть? Тем более, что ошибка вылезает далеко не всегда. Или предварительно надо как-то принудительно проверять и подгружать историю?
Отловил-таки ошибку, цитата из справки:
Принтовал в Журнал — получил:
Что теперь с ней делать, куда идти? У меня ли кривые руки или?..
Точно должно быть присваивание
а не сравнение?
Точно должно быть присваивание
а не сравнение?
Так это не код программы, а результат Print'а в Журнале терминала. А вот и сам код:
То есть это не я промазал мимо диапазона массива, а многострадальная история почему-то не всегда якобы подгружается. Я всегда думал, что история подгружается слева и при неполной загрузке её может не хватить. Но чтобы не хватало истории справа (новые бары) — это для меня нонсенс! Тем паче у меня ArraySetAsSeries=false, если это вообще имеет значение.Так это не код программы, а результат Print'а в Журнале терминала. А вот и сам код:
То есть это не я промазал мимо диапазона массива, а многострадальная история почему-то не всегда якобы подгружается. Я всегда думал, что история подгружается слева и при неполной загрузке её может не хватить. Но чтобы не хватало истории справа (новые бары) — это для меня нонсенс! Тем паче у меня ArraySetAsSeries=false.Читает пустой массив, в котором ничего нет?
Попробуйте так
Читает пустой массив, в котором ничего нет?
Попробуйте так
У меня строка вывода Arr[0] специально закомментирована (см. выше), так как при попытке вывести её в Журнал дело не доходит до сообщения об ошибке 4401, а всё заканчивается выводом ошибки "array out of range".
...Пока покурю https://www.mql5.com/ru/docs/series/timeseries_access, но раздувать свой код этим кодом — жуть...У меня строка вывода Arr[0] специально закомментирована (см. выше), так как при попытке вывести её в Журнал дело не доходит до сообщения об ошибке 4401, а всё заканчивается выводом ошибки "array out of range".
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Vitaly Muzichenko, 2020.12.31 13:06
Читает пустой массив, в котором ничего нет?
Да, массив оказывается пустой, то есть не происходит копирование в него ни одного нового бара.
Да, массив оказывается пустой, то есть не происходит копирование в него ни одного нового бара.
так бывает при первом запросе