Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Небольшие итоги с экспериментами по анализу тиков.
1. Обработчик OnTick пропускает значительное количество тиков.
Поэтому, если требуется анализировать ленту сделок через пришедший тик, то смысла нет.
При таком подходе результаты работы алгоритма в тестере и реальные результаты торговли будут отличаться.
Как вариант, можно анализировать ленту сделок за выбранный период или определенное количество последних сделок посредством получения исторических тиков через функции CopyTicks() или CopyTicksRange().
В этом случае результаты тестирования алгоритма в тестере и реальные результаты торговли совпадают.
Из минусов понижение производительности алгоритма.
Да, советник тики может пропускать. Поэтому либо индикатор, либо CopyTicks.
А снижение производительности за счет чего? Копируйте только необходимый отрезок (который появился с момента последнего успешного получения данных).
Зачем их собирать "в реальном времени", если все равно используется CopyTicks?
В любой нужный момент можно скопировать тики на нужную глубину.
Андрей, прочтите название темы
Добавлено
На нужную глубину не получится с CopyTicks(), а только 2000 тиков!
Андрей, прочтите название темы
Что из того, что задача изначально неправильно поставлена?
Анализ тиков в реальном времени возможен, но, чтобы не было пропусков, нужно использовать индикатор или CopyTicks.
На нужную глубину не получится с CopyTicks(), а только 2000 тиков!
Нет такого ограничения, посмотрите пример из документации:
Что из того, что задача изначально неправильно поставлена?
Анализ тиков в реальном времени возможен, но, чтобы не было пропусков, нужно использовать индикатор или CopyTicks.
Нет такого ограничения, посмотрите пример из документации:
1. Не обязательно индикатор!
Если Вы имеете ввиду справку, где написано
В экспертах и скриптах функция CopyTicks() может дожидаться результата до 45 секунд....
ТО если прочитать до конца, то там написано:
Скорость выдачи: терминал хранит по каждому символу 4096 последних тиков в кеше для быстрого доступа (для символов с запущенным стаканом – 65536 тиков), запросы к этим данным выполняются быстрее всего.
Событие OnBookEvent() срабатывает, когда в терминал поступает новый пакет тиков, поэтому
и из советника можно собирать тики. Возьмите пример и проверьте.
2. Есть такое ограничение, проверьте сами (CopyTicksRange() не имеет ограничений)
1. Не обязательно индикатор!
Событие OnBookEvent() срабатывает, когда в терминал поступает новый пакет тиков, поэтому
и из советника можно собирать тики. Возьмите пример и проверьте.
OnBookEvent не дает ни каких гарантий, что тики не будут пропущены. Если там будут тяжелые вычисления, будет такой же пропуск, как и в OnTick.
А откуда копировать нужную глубину тиков через CopyTicks - не важно.
2. Есть такое ограничение, проверьте сами
Оно есть как раз для параметров 0, 0, о чем в справке прямо указано:
Если параметры from и count не указаны, то в массив ticks_array[] будут записаны все доступные последние тики, но не более 2000.
OnBookEvent не дает ни каких гарантий, что тики не будут пропущены.
Повторяю
OnBookEvent() именно дает такую гарантию, что пришел новый пакет тиков!
Из справки:
Скорость выдачи: терминал хранит по каждому символу 4096 последних тиков в кеше для быстрого доступа (для символов с запущенным стаканом – 65536 тиков), запросы к этим данным выполняются быстрее всего.
Конец цитаты----
Если бы OnBookEvent не срабатывал, то всю торговлю (биржевую) в МТ5 можно бы было выбросить в помойку!
Пришел новый пакет тиков - 100% сработал OnBookEvent, а уж сколько тиков пришло, покажет CopyTicks(),
данные-то уже храняться в кеше и доступ к ним самый быстрый!
Поэтому и можно реализовать сборщик тиков в реальном времени и в индикаторе и в советнике (при запущеном стакане).
Добавлено
Возьмите код выше и проверьте, чем спорить...
В коде сборщика тиков принцип верный, но есть ошибки реализации, подправлю
и выложу чуть позже.
Добавлено
Сборщик всез тиков в реальном времени из советника
Пользуйтесь
Чтобы сравнить как работает сборщик тиков, то из него в один момент можно сделать Ленту всех сделок
(заменив COPY_TICKS_ALL на COPY_TICKS_TRADE в двух местах) и сравнить с лентой сделок,
встроенной в стакан инструмента.
Если инструмент высоколиквидный, то принты могут идти с большой задержкой
Одновременно разве у тиков не может стоять больше одного флага?
Повторяю
OnBookEvent() именно дает такую гарантию, что пришел новый пакет тиков!
Но это разве означает что есть гарантия, что вы обработаете ВСЕ события OnBookEvent?