Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Yedelkin:
Ну а поскольку в справочнике сказано, что "событие NewTick генерируется при поступлении нового тика по символу, к графику которого прикреплен эксперт", факт поступления новых тиков должен приводить к генерированию событий NewTick.
Судя по вопросу, Вы считаете, что при отключении OnTick() события NewTick не генерируются? Но в справочнике я такой информации не нашёл.
Я считаю именно так - если нет обработчика, событие в очередь не ставится. Это логично, и я не вижу смысла писать об этом в справке.
В процессе работы советника генерируется огромнейшее кол-во событий (торговые, с графика, и т.д.), абсолютно не обязательно обрабатывать их все.
Если бы все (в том числе - необрабатываемые) события ставились в одну очередь, некоторые советники просто не смогли бы работать - до их события не дошла бы очередь (например, при работе только по таймеру раз в сутки).
Я считаю именно так - если нет обработчика, событие в очередь не ставится. Это логично, и я не вижу смысла писать об этом в справке.
В процессе работы советника генерируется огромнейшее кол-во событий (торговые, с графика, и т.д.), абсолютно не обязательно обрабатывать их все.
Если бы все (в том числе - необрабатываемые) события ставились в одну очередь, некоторые советники просто не смогли бы работать - до их события не дошла бы очередь (например, при работе только по таймеру раз в сутки).
На мой взгляд, два типа событий (NewTick и Timer) должны обрабатываться отдельно от остальных. верней так - Для каждого типа этих событий должен бы свой поток и соответственно своя очередь.
Скорей всего также следует разнести торговые события (Trade) и события по обработке стакана цен (BookEvent).
Lizar, Interesting,
я ошибался в части выводов работы с тестером. Видимо, логи демо принял за логи тестера. Конструкция
у меня пока что не работает. Это говорит о том, что пользовательское событие CHARTEVENT_CUSTOM от индикаторов на чужих символах либо не поступает, либо не обрабатывается. Извините за предоставление недостоверной информации.
Я считаю именно так - если нет обработчика, событие в очередь не ставится.
Хорошо бы, если бы подтвердилась именно эта версия. Но для тестера тики генерируются по-любому. Даже когда они совершенно не нужны.
Это логично, и я не вижу смысла писать об этом в справке.
Возможно, что это логично, но не для всех. Разработчики уже не раз упрекали пользователей за излишнее домысливание. Поэтому в своих выводах стараюсь исходить только из той информации, которая имеется на данный момент. А на данный момент, как было сказано ранее, в справочнике сказано, что "событие NewTick генерируется при поступлении нового тика по символу, к графику которого прикреплен эксперт". Оговорок про исключения из этого правила я не нашёл, поэтому и пришёл к выводу о том, что факт поступления новых тиков должен приводить к генерированию событий NewTick.
В процессе работы советника генерируется огромнейшее кол-во событий (торговые, с графика, и т.д.), абсолютно не обязательно обрабатывать их все.
Но для тестера тики генерируются по-любому. Даже когда они совершенно не нужны.
Как это? А проверять срабатывание ордеров (отложенных, СЛ и ТП) он будет по каким ценам?
В тестере нужны тики по всем инструментам, по которым торгует советник. Естественно, чем больше инструментов и чем выше качество моделирования, тем медленнее будет работа.
Yedelkin:
А на данный момент, как было сказано ранее, в справочнике сказано, что "событие NewTick генерируется при поступлении нового тика по символу, к графику которого прикреплен эксперт". Оговорок про исключения из этого правила я не нашёл, поэтому и пришёл к выводу о том, что факт поступления новых тиков должен приводить к генерированию событий NewTick.
Да, но, следуя этой логике, абсолютно так же должны строится в очередь и все остальные события. Это было бы слишком.
Как это? А проверять срабатывание ордеров (отложенных, СЛ и ТП) он будет по каким ценам?
Ну я же ещё раз говорю: эксперт вообще не работает с символом, к которому прикреплён. И никаких SL и TP именно по этому символу ему отслеживать не надо. Т.е. тики по данному символу эксперту совершенно не нужны. Прикреплён эксперт к символу только по необходимости, потому что для запуска его надо хоть куда-то прикрепить.
Да, но, следуя этой логике, абсолютно так же должны строится в очередь и все остальные события. Это было бы слишком.
Следуя этой логике, все исключения из правил генерации тиков и/или выставления событий в общую очередь должны быть перечислены в справочнике. Пока же нашёл только одно исключение, - на случай, когда (1) имеется функция OnTick(), (2) эта функция обрабатывает предыдущее событие NewTick. К моему случаю это исключение не подходит.
Yedelkin:
Следуя этой логике, все исключения из правил генерации тиков и/или выставления событий в общую очередь должны быть перечислены в справочнике. Пока же нашёл только одно исключение, - на случай, когда (1) имеется функция OnTick(), (2) эта функция обрабатывает предыдущее событие NewTick. К моему случаю это исключение не подходит.
Логично предположить, что если OnTick() отсутствует то и обработки тиков для этого графика (по символу этого графика) не ведется.
Ставятся события в очередь или нет, и в какую очередь это уже другой вопрос. Главное что тики чартом (экспертом на нем) не обрабатываются!
Если учесть то что эксперт обрабатывает тики с других чартов то тут мутить нужно именно с обработкой ВНЕШНИХ тиков.
Таким образом, на мой взгляд, нужно в эксперте создать собственную обработку тиков в которую как вводные параметры передать: символ, время, цену (Кастомное событие теоретически позволяет все это сделать).
На мой взгляд именно работу с потком кастомных событий при этом нужно детально изучать и оптимизировать.
Если учесть то что эксперт обрабатывает тики с других чартов то тут мутить нужно именно с обработкой ВНЕШНИХ тиков.
Таким образом, на мой взгляд, нужно в эксперте создать собственную обработку тиков в которую как вводные параметры передать: символ, время, цену (Кастомное событие теоретически позволяет все это сделать).
На мой взгляд именно работу с потком кастомных событий при этом нужно детально изучать и оптимизировать.
Всё верно говорите, именно этим путём я и пошёл - путём обработки исключительно внешних тиков. Здесь пока вопросов нет.
Логично предположить, что если OnTick() отсутствует то и обработки тиков для этого графика (по символу этого графика) не ведется.
Ставятся события в очередь или нет, и в какую очередь это уже другой вопрос. Главное что тики чартом (экспертом на нем) не обрабатываются!
Всё верно говорите, именно этим путём я и пошёл - путём обработки исключительно внешних тиков. Здесь пока вопросов нет.
Да вот я и зациклился на том, чтобы гарантированно знать, что общая очередь в моём случае не засоряется событиями от "внутренних" тиков. Могу, конечно, ошибаться, но ведь "отключить" - это должно быть гораздо легче, чем "обеспечить своевременную генерацию тиков, правильную очерёдность событий, синхронизированность с сервером и т.д". ...Пусть "по умолчанию" для большинства всё остаётся так как есть на данный момент, а для экстремалов, типа меня, - добавить функцию отключения/переключения. С предостережениями в справочнике, если могут быть какие-нибудь побочные эффекты.На счет легче это спорный вопрос, да и предлагаемый Вами вариант не менее спорный (на мой взгляд).
Весь вопрос относительно тиков, да и всех событий в целом состоит в том в том что происходит с событиями если в эксперте нет обработчика.
Вторым вопрос который меня в этой связи будет следующим - все события в одной очереде обрабатываются или для определенных событий (OnTimer, OnTick и OnTrade) свои очереди?
На счет легче это спорный вопрос, да и предлагаемый Вами вариант не менее спорный (на мой взгляд).
Согласен; трудно судить, о чём толком не знаешь. Остаётся только высказывать пожелания :) Насчёт спорности именно моего варианта могу сказать, что тут главное - это сама идея "Мне не нужны тики!"; а как она будет реализована - это на усмотрение разработчиков.
Весь вопрос относительно тиков, да и всех событий в целом состоит в том в том что происходит с событиями если в эксперте нет обработчика.
Совершенно верно. Для меня тут решение одно - обрубить концы (ввести функцию-переключатель) и гарантированно не париться с вопросом :) Но также следует помнить и про тестер, который вхолостую тратит время на создание (генерирование?) ненужных в принципе тиков. Только потому, что эксперт вынужденно прикреплён к одному из символов.
Вторым вопрос который меня в этой связи будет следующим - все события в одной очереде обрабатываются или для определенных событий (OnTimer, OnTick и OnTrade) свои очереди?
Ну, из справочника прямо следует, что "все возникающие события" складываются в одну общую очередь и обрабатываются одно за другим в порядке поступления. Исключение указано только для NewTick. Вы как-то доказали, что и событие OnTimer не всегда обрабатывается, но это может быть связано и с его удалением в результатет переполнения общей очереди. Про отдельные очереди для каждого из событий вообще упоминаний не встречал.