Тестер стратегий для мультивалютного советника - страница 2

 
Andrey Khatimlianskii:

Не всем нужно, чтобы ОнТик запускался на тиках всех тестируемых инструментов.

Ну а реализовать можно все что угодно уже сейчас.

Это понятно, но смысл не в том, кому нужно а кому нет, а в корректной синхронизации тиков по времени!
А кому нужно или нет, тот уже сам решает как строить логику реализации своего кода.
Главное чтобы возможность была из коробки корректной синхронизации тиков без танцев с бубном.
 
Roman:
Это понятно, но смысл не в том, кому нужно а кому нет, а в корректной синхронизации тиков по времени!
А кому нужно или нет, тот уже сам решает как строить логику реализации своего кода.
Главное чтобы возможность была из коробки корректной синхронизации тиков без танцев с бубном.

Зачем синхронизировать тики? Зачем тратить на это ресурсы (генерировать тики, которых не было), если это не нужно?

У вас есть чистый поток тиков по каждому инструменту. Вы можете работать как по тикам одного инструмента, так и по тикам всех необходимых инструментов.


С одним соглашусь, нужен мультивалютный ОнТик из коробки.

 
Andrey Khatimlianskii:

Зачем синхронизировать тики? Зачем тратить на это ресурсы (генерировать тики, которых не было), если это не нужно?

У вас есть чистый поток тиков по каждому инструменту. Вы можете работать как по тикам одного инструмента, так и по тикам всех необходимых инструментов.


С одним соглашусь, нужен мультивалютный ОнТик из коробки.

Терминал МТ5 давно вышел за пределы дилингового форекса, и успешно применяется на биржевых рынках.
Но вот не совсем он подготовлен для биржевых реализаций кода.
Тик может быть без изменения цены, т.е. разбор лимитной заявки на одном уровне цены несколькими сделками, изменяя прошедший реальный тиковый объём, остаток и т.д.
Да, есть соответствующие флаги, но они не синхронизированы в мультивалютном режиме.
Речь же идет за мультивалютное тестирование, а из этого вопроса вытекает другая проблема,
построение мультивалютных тиковых графиков основанные на реальных тиках (на будущее если реализуют тиковые графики)
И эта возможность не как прероготива для кодера, а как корректная обработка реальных тиков терминалом,
как для тестирования в тестере, так и для построения (возможных в будущем) тиковых графиков.
По этому думаю лучше предоставлять больше програмных возможностей програмисту.
Что касается ресурсов, сейчас у всех современные процессоры, да и ресурсы OpenCL доступны из кода mql5 кто в этом шарит.
Язык mql5 сильный по своей наследственности от С++, по этому за ресурсы всегда должен думать програмист.

 
Roman:

Терминал МТ5 давно вышел за пределы дилингового форекса, и успешно применяется на биржевых рынках.
Но вот не совсем он подготовлен для биржевых реализаций кода.
Тик может быть без изменения цены, т.е. разбор лимитной заявки на одном уровне цены несколькими сделками, изменяя прошедший реальный тиковый объём, остаток и т.д.
Да, есть соответствующие флаги, но они не синхронизированы в мультивалютном режиме.
Речь же идет за мультивалютное тестирование, а из этого вопроса вытекает другая проблема,
построение мультивалютных тиковых графиков основанные на реальных тиках (на будущее если реализуют тиковые графики)
И эта возможность не как прероготива для кодера, а как корректная обработка реальных тиков терминалом,
как для тестирования в тестере, так и для построения (возможных в будущем) тиковых графиков.
По этому думаю лучше предоставлять больше програмных возможностей програмисту.
Что касается ресурсов, сейчас у всех современные процессоры, да и ресурсы GPU доступны из кода mql5 кто в этом шарит.
Язык mql5 сильный по своей наследственности от С++, по этому за ресурсы всегда должен думать програмист.

Если честно, вообще не вижу проблемы. Тики без изменения цены можно пропускать (если нужно). 
А, главное, не вижу конструктивного запроса. Чего не хватает в языке? 
 
Andrey Khatimlianskii:
Если честно, вообще не вижу проблемы. Тики без изменения цены можно пропускать (если нужно). 
А, главное, не вижу конструктивного запроса. Чего не хватает в языке? 
В том то и дело если пропускать такие тики, нарушается тиковая временная шкала для синхронизации мультивалютных решений!
Как мне кажется, не хватает синхранизации мультивалютных тиков. А чтобы их синхронизировать, нужно сохранять все временные изменения потока.
Тем самым заложить основу для построения тиковых графиков!
 
Roman:
В том то и дело если пропускать такие тики, нарушается временная шкала для синхронизации мультивалютных решений!
Так не пропускайте! Терминал же их дает (и тестер тоже). 
 
Andrey Khatimlianskii:
Так не пропускайте! Терминал же их дает (и тестер тоже). 

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

Вот выдержка из статьи


"Система построения графиков в MetaTrader 4 устроена так, что рисуются только те бары, во временных промежутках которых было хоть одно изменение цены.
Если в течение минуты изменения цены не было, то на минутном графике образуется пропуск в один бар", - так начинается статья Графики без "дыр"

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

 
Roman:

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

При чем здесь бары?

Да, бары без изменения цены не строятся. Хотя, ничего не мешает вам построить кастумный инструмент с любыми барами.

А про тики не нужно фантазировать, напишите советника из 3 строк и проверьте.

 
Andrey Khatimlianskii:

При чем здесь бары?

Да, бары без изменения цены не строятся. Хотя, ничего не мешает вам построить кастумный инструмент с любыми барами.

А про тики не нужно фантазировать, напишите советника из 3 строк и проверьте.

Андрей, ну как же при чём тут бары?
Если бар не построился, то и нарушилась синхронность по времени с другим инструментом. Очевидно же в этом проблема построения мультивалютности.
Ведь все индикаторы, скрипты, советники запускаются на каком либо тайм фрейме, который состоит только из баров.
В том то и дело, что пользователю терминала, нужно самому решать эти косяки, строить кастомные символы, которые так же не корректно работают в последних билдах.
Загонять туда тиковый поток и т.д. что то мудрить и выворачиваться, когда проблема очевидна на уровне терминала.
Когда это всё должно быть реализовано из коробки изначально верно.
Возможно по этой причине мы до сих пор не видим тиковые графики в терминале.
Построенные не на одном тике, а на произвольном выборе пользователем количества тиков в баре.

 
Roman:

Андрей, ну как же при чём тут бары?
Если бар не построился, то и нарушилась синхронность по времени с другим инструментом. Очевидно же в этом проблема построения мультивалютности.
Ведь все индикаторы, скрипты, советники запускаются на каком либо тайм фрейме, который состоит только из баров.
В том то и дело, что пользователю терминала, нужно самому решать эти косяки, строить кастомные символы, которые так же не корректно работают в последних билдах.
Загонять туда тиковый поток и т.д. что то мудрить и выворачиваться, когда проблема очевидна на уровне терминала.
Когда это всё должно быть реализовано из коробки изначально верно.
Возможно по этой причине мы до сих пор не видим тиковые графики в терминале.
Построенные не на одном тике, а на произвольном выборе пользователем количества тиков в баре.

Возвращаемся к моему первому ответу:
Нужно либо ждать появления бара на всех используемых инструментах (далеко не всегда первый тик нового бара приходит одновременно), либо определять новый бар по TimeCurrent, а в анализе делать поправку на то, появился 0-й бар на инструменте или нет (если появился, индекс последнего сфомированного бара будет равен 1, а если нет, то 0).

По поводу корректности построения индикаторов вопрос спорный. Но не вижу смысла разводить еще один халивор. 

Вы работаете на м1? Или нашли пропуски где-то еще? 
Причина обращения: