Проблема 4066 - страница 2

 
stringo писал(а) >>

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

Спасибо. за сегодня уже раз 10 смотрел её. что не так

Вот тук функция 'Программная перезагрузка expertа.'

а вот тут логи 'Программная перезагрузка expertа.'

историю так и не удаеться загрузить

 
stringo писал(а) >>

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

Ваш пример я видел. Он мне не подходит.

1. для минуток не гарантируется соответствие TimeCurrent() iTime(). особенно, когда речь идет о мультивалютной торговле.

2. Загрузка нулевой свечи не гарантирует загрузки всех свечей.

3, отсутствие 4066 в строке if(error==4066) вообще ни о чем не говорит. Ведь нигде не написано, когда два последущих вызова

ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1);
вернут 4066 оба

4. на минутках не все свечи гарантированно есть. То есть нельзя проверять время свечи.

Хотелось бы услышать общие правила для написани мультивалютного советника. что писать в инит(), что в старт().

Хотя, общая картина складывается потихоньку, Осталось совсем не много

 

В таком случае, Вам придётся самостоятельно искать решение.

Разработчики об общих правилах для написания мультивалютных советников сказали всё, что могли.

 
stringo писал(а) >>

В таком случае, Вам придётся самостоятельно искать решение.

Разработчики об общих правилах для написания мультивалютных советников сказали всё, что могли.

Если Вы разработчик, спасибо и на этом.

Возможно в mt5 Появится типа событие OnEndUpdate(), или 4066 будет привязана к инструменту и таймфрейму.

Нухно всего то, знать, что от сервера получены все запрошенные данные.

Кста, для общего развития. Вы тут и Slawa там - один человек?

 
BabyBear >>:

Если Вы разработчик, спасибо и на этом.


Интервью со Станиславом Стариковым: особенности нового MQL5

 

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

 
Vinin писал(а) >>

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

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

Похоже, в МТ5 всем придется делать такой обработчик

Каждому самостоятельно

За прогресс надо платить

И еще неизвестно, к чему это приведет.

-------------

Заявления о скорости работы МТ5 на этом фоне бледнеют.

 
stringo писал(а) >>

В таком случае, Вам придётся самостоятельно искать решение.

Разработчики об общих правилах для написания мультивалютных советников сказали всё, что могли.

А это пример решения проблемы. Только к слову мультивалютных надо добавить и мулититаймфреймовых.

 

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

Странная ситуация складывается! Код, который пользователь должен написать, чтобы понять, а можно ли вообще торговать, может превышать код эксперта в десятки раз и по объему, и по сложности поставленной задачи. Взять хотя бы проблему с данными после разрыва связи. Экпертописатели прекрасно знают, что там одной строчкой кода не обойдешься. Да много чего подобного есть.

Как можно вообще говорить о приспособленности МТ для автоматизации торговли, если в ее концепции нет функционала для этого. Т.е. сделать можно, но для МТ это не главное. Главное - это игрушки, а как они будут торговать в реальных условиях, для разработчиков не особо интересно. Эксперт должен торговать, а не думать на каком он, блин, свете находится. Для этого платформа должна давать конкретные возможности.

 

Что было в мт4.

---

Доступ к любой валютной паре и к любому таймфрейму осуществлялся путем простого запроса значения таймсерии, например, High[0] ( iHigh() ).

---

Что стало в мт5.

---

Такой простой доступ, как в мт4 остался возможным только для индикаторов через функцию OnCalculate, но только к одному единственному таймфрейму и только к одной валютной паре. К другим таймфреймам и другим валютным парам доступ стал намного более сложным. Прежде чем получить такой доступ необходимо сначала скопировать из соответствующей таймсерии данные в свой массив или в свою переменную. И здесь начинаются проблемы. В мт5 с сервера поступают только минутки. Все остальные таймфреймы пересчитываются из минуток и только после того, как был сделан запрос к соответствующему тф. Вы делаете запрос, а данных этого тф еще нет. Соответственно, надо ждать какое-то неопределенное время пока эти данные не появятся после преобразоввния минуттк в нужный тф. Первый вопрос - сколько времени ждать. Как определить момент времени, когда появятся нужные данные. После этого необходимо скопировать эти данные. И только после этого Вы получите доступ к нужным Вам данным.

---

В мт5 Проблема 4066 встает в полный рост для всех программистов. Ранее с этой проблемой сталкивалось ограниченное число программистов. Эта проблема возникала при решении определенных задах. Сейчас круг задач, у которых появилась эта проблема расширился.

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