Проблема перевода с МТ4 на МТ5. Или, точнее, невозможность без'ошибочного исполнения некоторых алгоритмов в МТ5. - страница 6

 
Почему бы тогда вообще не создать свой терминал.?
 
Artyom Trishkin:
Один раз считать все таймсерии, а дальше только дополнять. Можно в окне.
Да, в свои массивы. Можно при помощи СБ. Класс таймсерии свой.

Ну это же бред!

Зачем тогда терминал и MQL? Чтобы самому все писать? А ордера отправлять по фиксу прямо брокеру?

 
Eugeni Neumoin:

То есть предлагаете не использовать буферы, а работать со своими массивами?

Зачем тогда буферы?

То есть предлагается сделать свой костыль, вместо буферов :(

И вместо iTime, iLow и т.д. сделать свои функции... переписать все по своему, в обход неработающих функций из МТ5...

Это кардинально. Но пусть этим энтузиасты занимаются. Постою в сторонке. Даже наблюдать за процессом не буду.

Делал много индикаторов таким образом - на классах таймсерии. Там всё есть, и ничем не отличается от обычной работы с индикаторами. Но в дополнение - куча удобств.
 
Andrey Khatimlianskii:

Тогда ошибка в логике, возможно. Бара может и не быть.

Бар есть. Не всегда функция выдает -1. Полагаю это как раз вот это из описания языка МТ5:

"...Доступность данных

Наличие данных в формате HCC или даже в готовом для использования формате HC не всегда означает безусловную доступность этих данных для отображения на графике или для использования в mql5-программах.

При доступе к ценовым данным или к значениям индикаторов из mql5-программ  следует помнить, что не гарантируется их доступность в определенный момент времени, либо с определенного момента времени..."

 
Andrey Khatimlianskii:

Ну это же бред!

Зачем тогда терминал и MQL? Чтобы самому все писать? А ордера отправлять по фиксу прямо брокеру?

А в чём бред? В том, что у вас в буфере есть готовые данные? Так это и в четверке для ускорения делалось не раз.
 
Artyom Trishkin:
Всё там работает. Но иногда в доступе отказывается. Может по причине обновлений таймсерии - не знаю. При отказе нужно повторить запрос, так как первый запрос активизирует подкачку данных.

Если бы все работало, не было бы миллион тем, посвященных этой проблеме.

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

 
Artyom Trishkin:
А в чём бред? В том, что у вас в буфере есть готовые данные? Так это и в четверке для ускорения делалось не раз.

Бред — в организации своей копии данных, которые и так доступны в терминале.

 
Eugeni Neumoin:

Бар есть. Не всегда функция выдает -1. Полагаю это как раз вот это из описания языка МТ5:

"...Доступность данных

Наличие данных в формате HCC или даже в готовом для использования формате HC не всегда означает безусловную доступность этих данных для отображения на графике или для использования в mql5-программах.

При доступе к ценовым данным или к значениям индикаторов из mql5-программ  следует помнить, что не гарантируется их доступность в определенный момент времени, либо с определенного момента времени..."

iBarShift() одинаково работают в обоих терминалах. И возвращаются одинаковые коды возврата при одинаковых условиях.
 
Artyom Trishkin:
Делал много индикаторов таким образом - на классах таймсерии. Там всё есть, и ничем не отличается от обычной работы с индикаторами. Но в дополнение - куча удобств.

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

 
Artyom Trishkin:
iBarShift() одинаково работают в обоих терминалах. И возвращаются одинаковые коды возврата при одинаковых условиях.

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

А раз есть отказ в доступе и разработчики чесно об этом говорят, то и плодятся темы на форуме. И КАЖДЫЙ! программист сталкивается с этой проблемой. И каждый пытается решить эту проблему по своему. У кого-то получается, у кого-то не получается.

Грамотные разработчики создают библиотеки, например tensorflow, чтобы люди не мучались. А здесь... ну в начале ветки все читали ответы Рената...