Здравствуйте все!
Пишу советник, в секции OnTick() пусто, все действия в OnChartEvent() и самописных функциях.
Советник трижды просит пользователя совершить действия (клик мышью или кнопкой на клавиатуре) и после каждого вопроса ждёт этих действий.
Я заметил, что обработка каждого действия происходит во время поступления нового тика. Если нового тика нет, то советник замирает.
Во время активного рынка это не заметно, а вот по вечерам, например, очень заметно.
Вопрос: это нормально? Так и должно быть? И я напрасно жду от него "тиконезависимой" работы?
Возможно Вас спасёт OnTimer().
Здравствуйте все!
Пишу советник, в секции OnTick() пусто, все действия в OnChartEvent() и самописных функциях.
Советник трижды просит пользователя совершить действия (клик мышью или кнопкой на клавиатуре) и после каждого вопроса ждёт этих действий.
Я заметил, что обработка каждого действия происходит во время поступления нового тика. Если нового тика нет, то советник замирает.
Во время активного рынка это не заметно, а вот по вечерам, например, очень заметно.
Вопрос: это нормально? Так и должно быть? И я напрасно жду от него "тиконезависимой" работы?
Советник замирает не потому, что "нет нового тика", а потому, что нет нового ChartEvent - совершенно справедливо. Так что ваша работа вполне себе "тиконезависима", по чарт-евентам, которых нет. Когда нет чарт-евентов - разумеется, ваш советник остановится в ожидании.
Правильно вам указали - запускайте таймер, и обрабатывайте события по таймеру.
Хотя, по мне - "тиконезависимость" - это абсурд. Как можно пропускать котировки, или наоборот, производить какие-то действия, когда они еще не пришли ?
Хотя, по мне - "тиконезависимость" - это абсурд. Как можно пропускать котировки, или наоборот, производить какие-то действия, когда они еще не пришли ?
Спасибо за ответ, друзья George Merts, Yury Kirillov!
Вот что делает советник:
1. после запуска говорит "укажите уровень входа" и ждёт клика по графику, после клика запоминает ценовой уровень
2. говорит "укажите уровень стоп-лосса" и снова ждёт клика, получает, запоминает уровень, высчитывает размер СЛ в пунктах и определяет покупка или продажа
3. говорит "укажите тейк-профит", ждёт клика, получает его и только теперь запрашивает размер депозита, рассчитывает размер лота и устанавливает отложенный ордер.
Мне думается, что на первых двух этапах ему новые котировки не нужны, но он переходит от шага к шагу с поступлением котировки от сервера :(
Над таймером помедитирую :) как его применить и нужно ли.
Вот сейчас выходные - значит тиков нет, а OnChartEvent обрабатывается аж бегом :)
OnChartEvent; CHARTEVENT_CLICK OnChartEvent; CHARTEVENT_CHART_CHANGE OnChartEvent; CHARTEVENT_CHART_CHANGE OnChartEvent; CHARTEVENT_CLICK OnChartEvent; CHARTEVENT_OBJECT_DRAG OnChartEvent; CHARTEVENT_OBJECT_DRAG
Вот что делает советник:
1. после запуска говорит "укажите уровень входа" и ждёт клика по графику, после клика запоминает ценовой уровень
2. говорит "укажите уровень стоп-лосса" и снова ждёт клика, получает, запоминает уровень, высчитывает размер СЛ в пунктах и определяет покупка или продажа
3. говорит "укажите тейк-профит", ждёт клика, получает его и только теперь запрашивает размер депозита, рассчитывает размер лота и устанавливает отложенный ордер.
Мне думается, что на первых двух этапах ему новые котировки не нужны, но он переходит от шага к шагу с поступлением котировки от сервера :(
Над таймером помедитирую :) как его применить и нужно ли.
Зачем для всего этого городить советник-то ? Так много проблем для установки отложенного ордера ??? Не проще ли использовать обычный скрипт, которые ничего не будет ждать, а по установленным в настройках параметрах (уровнях ТП_СЛ) - выставляет отложку ? И таймер не нужен...
Твой же советник ждет кликов по графику - а если их нет ?
Зачем для всего этого городить советник-то ? Так много проблем для установки отложенного ордера ??? Не проще ли использовать обычный скрипт, которые ничего не будет ждать, а по установленным в настройках параметрах (уровнях ТП_СЛ) - выставляет отложку ? И таймер не нужен...
Твой же советник ждет кликов по графику - а если их нет ?
Мне думается, что на первых двух этапах ему новые котировки не нужны, но он переходит от шага к шагу с поступлением котировки от сервера :(
Все должно работать без тиков, ищите проблему в коде (раз не выкладываете его здесь).
Друзья-коллеги, спасибо всем за участие и советы!
Я всё понял - пойду искать косяки и ошибки в своём коде ;) - однозначно сам что-то не то наделал.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте все!
Пишу советник, в секции OnTick() пусто, все действия в OnChartEvent() и самописных функциях.
Советник трижды просит пользователя совершить действия (клик мышью или кнопкой на клавиатуре) и после каждого вопроса ждёт этих действий.
Я заметил, что обработка каждого действия происходит во время поступления нового тика. Если нового тика нет, то советник замирает.
Во время активного рынка это не заметно, а вот по вечерам, например, очень заметно.
Вопрос: это нормально? Так и должно быть? И я напрасно жду от него "тиконезависимой" работы?