Мт4 Конец поддержке. - страница 21

 
Andrei:

... единый интерфейс совершенно не применим для программирования любых вычислительных задач...

к любой задаче по программированию нужно подходить индивидуально, другое дело когда у вас есть 1000 похожих по свой структуре задач, которые можно объединить под одним флагом и создавать универсальные обработчики каждой функции для любой из этих многих задач. алготрейдинг как раз та область, где задачи практически однотипные для всего множества роботов.

с уважением.

 
Реter Konow:

Прошу прощения за небольшую задержку.

Вот первый вариант функции. Можно дорабатывать и развивать дальше. Если кто заметит ошибку, пожалуйста комментируйте.

Охох... Не вникал конечно - оч тяжело мне читать такой код. Будем считать, что гипотетически он возвращает то, что от него требуют.

А как вы узнаете факт наступления нового бара на EURUSD и на USDCAD - на каждом из них на трёх тф - на М5, Н1 и D1 ?

 
Andrey Kisselyov:

другое дело когда у вас есть 1000 похожих по свой структуре задач

Не думаю, что даже 2 похожие задачи найдутся. :) А функцию да можно по 1000 раз вызывать, но это одна задача а не 1000.

 
Artyom Trishkin:

Охох... Не вникал конечно - оч тяжело мне читать такой код. Будем считать, что гипотетически он возвращает то, что от него требуют.

А как вы узнаете факт наступления нового бара на EURUSD и на USDCAD - на каждом из них на трёх тф - на М5, Н1 и D1 ?

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

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

Нужно сделать калибровку для этой функции...

 
Реter Konow:

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

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

Нужно сделать калибровку для этой функции...


разница есть .... 

 
Andrei:

Не думаю, что даже 2 похожие задачи найдутся. :) А функцию да можно по 1000 раз вызывать, но это одна задача а не 1000.

речь идет не о вызове функции в советнике, а о написании универсальных интерфейсов(обработчиков).

у вас есть 1000 техзаданий на написание роботов, по сути каждый из них состоит из
1 функция получения сигнала на открытие
2 функция открытия ордера
3 функция сопровождения ордера
4 функция получения сигнала на закрытие
и так далее.
для каждого робота это свои функции, но в рамках 1000 проектов они повторяются. как следствие можно объединять функции в универсальные модули и в зависимости от задачи вызывать нужный.

с уважением.
 
Vladimir Pastushak:

разница есть .... 

Поясните.
 
Реter Konow:

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

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

Нужно сделать калибровку для этой функции...

новый бар формируется в момент прихода первого тика в баре, инструмент играет роль.


с уважением.

 
Реter Konow:

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

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

Нужно сделать калибровку для этой функции...

Нужен именно факт открытия нового бара на любом из предложенных символах на трёх тф.

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

если есть новый бар на М5 на EURUSD, то ...
если есть новый бар на Н1 на EURUSD, то ...
если есть новый бар на D1 на EURUSD, то ...
--------
если есть новый бар на М5 на USDCAD, то ...
если есть новый бар на Н1 на USDCAD, то ...
если есть новый бар на D1 на USDCAD, то ...

 
...и Time[0] надо бы заменить на iTime(_Symbol,PERIOD_M1,0)
потому как минуты не будут считаться
Причина обращения: