Проблема 4066

 

Недавно для себя выяснил, что нет никакой возможности проверить соответствие котировок на сервере и в терминале по старым свечам.

4066 - это даже не ошибка. Это сообщение терминала, что он запросил у сервера обновление данных по данному инструменту и таймфрейму.

Функции типа iHigh умеют генерировать ошибку 4066, но в качестве правильной её обработки рекомендуется "подождать несколько минут". Потом, видимо, нужно молиться, что ошибка 4066 уже обработана терминалом.

Есть мнение, что нужно держать открытыми все графики, используемые советником. Меня это решение не устраивает. Основная причина в том, советников у меня много и таймфреймов много

Автоматически открывать графики я не могу, а руками лень.

Расскажите, кто как обрабатывает - избегает ошибку 4066

Скрипт демонстрирует проблему. запустите сейчас два раза и сравните логи.

Файлы:
 
Стоит мультивалютный индикатор, который обращается на каждом тике к другим инструментам.
 

Он как обращается? Можно код этого индикатора глянуть?

и сразу впрос про организационные меры при запуске терминала. Я терминал иногда выключаю. Оставленный на нем советник при запуске успеет нахватаь гадостей даже несмотря на индикатор-обновлятор. Как это решить?

 

И какие гадости хватает советник? И что такое индикатор-обновлятор?

А код простой. В цикле перебираются все инструменты и таймфреймы. Поэтому идет формирование новых баров на всех таймфреймах. Терминал конечно из-за этого дольше загружается.

 
Vinin писал(а) >>
Стоит мультивалютный индикатор, который обращается на каждом тике к другим инструментам.

Vinin писал(а) >>

И что такое индикатор-обновлятор?

Вот он и есть :)

Vinin писал(а) >>

И какие гадости хватает советник?

А код простой. В цикле перебираются все инструменты и таймфреймы. Поэтому идет формирование новых баров на всех таймфреймах. Терминал конечно из-за этого дольше загружается.

Если индикатор и советник запустить одновременно, Советник нахватает неправильных данных. (Что именно может нахватать - я вижу, когда запускаю скрипт из первого поста.) А нахватав, вполне может открыть сделку.

Циклы, инструменты, таймфреймы всё понял. Тогда в теле одна строка типа

iHigh( symbol, priod, 1);

или что то другое?

 
BabyBear писал(а) >>

Вот он и есть :)

Если индикатор и советник запустить одновременно, Советник нахватает неправильных данных. (Что именно может нахватать - я вижу, когда запускаю скрипт из первого поста.) А нахватав, вполне может открыть сделку.

Циклы, инструменты, таймфреймы всё понял. Тогда в теле одна строка типа

iHigh( symbol, priod, 1);

или что то другое?

Советник должен на каждом тике обращаться к другому инструменту. И необходимо контролировать как раз ошибку 4066. Ошибки нет, значит данные загружены. И можно начинать анализировать данные. Ошибка помогает контролировать актуальность данных.

 
Vinin писал(а) >>

Советник должен на каждом тике обращаться к другому инструменту. И необходимо контролировать как раз ошибку 4066. Ошибки нет, значит данные загружены. И можно начинать анализировать данные. Ошибка помогает контролировать актуальность данных.

К сожалению, отсутствие ошибки не имеет оношения к загрузке данных. Я специально скрипт выложил, чтоб это показать. Если бы было так как Вы (можно на ты?) написали, то я бы не заводил ветку.

 

вот похожая ветка 'iOpen и iClose "не работает".'

p/s/ нашел её благодаря похожим темам. полезная возможность :)

 
уп
 

ап

тоже добавлю свои 5 капель 'Программная перезагрузка expertа.'

ошибки нет. но загружено только 8 баров (минутки). это не история

Задача: как из индикатора загрузить данные по разным валютным парам на заданную глубину.

Спасибо.

 
BabyBear писал(а) >>

Недавно для себя выяснил, что нет никакой возможности проверить соответствие котировок на сервере и в терминале по старым свечам.

4066 - это даже не ошибка. Это сообщение терминала, что он запросил у сервера обновление данных по данному инструменту и таймфрейму.

Функции типа iHigh умеют генерировать ошибку 4066, но в качестве правильной её обработки рекомендуется "подождать несколько минут". Потом, видимо, нужно молиться, что ошибка 4066 уже обработана терминалом.

Есть мнение, что нужно держать открытыми все графики, используемые советником. Меня это решение не устраивает. Основная причина в том, советников у меня много и таймфреймов много

Автоматически открывать графики я не могу, а руками лень.

Расскажите, кто как обрабатывает - избегает ошибку 4066

Скрипт демонстрирует проблему. запустите сейчас два раза и сравните логи.

В документации есть пример обработки ошибки 4066 https://docs.mql4.com/ru/array/ArrayCopySeries

Причина обращения: