Заметил, что робот проворонил сигнал, в логах ничего не нашел, задебажил и увидел, что не вызывается OnProcess. В последнем вызове PropertyChanged у стратегии состояние Runned. Стратегия унаследована от TimeFrameStrategy, S# последний.
Комментарии (15)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Ситуация воспроизвелась. OnProcess запускается раз в секунду. Утром он в последний раз запустился в 9:55:07 и стал вызываться снова только после того, как специально обученный костыль перезапустил стратегию в 10:00:18.
Alter:
Ситуация воспроизвелась. OnProcess запускается раз в секунду. Утром он в последний раз запустился в 9:55:07 и стал вызываться снова только после того, как специально обученный костыль перезапустил стратегию в 10:00:18.
QuikTrader.IsConnected был true. Точнее я проверял Terminal.IsConnected, но как я понимаю это будет одно и то же. В стратегии в OnProcess в самом начале метода запоминается время его вызова и периодически проверяется.
Alter:
QuikTrader.IsConnected был true. Точнее я проверял Terminal.IsConnected, но как я понимаю это будет одно и то же.
Разное. Terminal проверяет подключение по косвенным признакам, а QuikTrader.IsConnected через АПИ. С точки зрения логики это одно и то же, но могут быть и различия в особых ситуациях. То, что у вас не стартует до торгов явно не является обычной практикой (хотя бы взять тот факт, что это до торгов).
Alter:
В стратегии в OnProcess в самом начале метода запоминается время его вызова и периодически проверяется.
Вы пробовали отладчиком поставить точку останова в начало метода?
Отладчиком проверял, метод не вызывается. Так вместо Terminal.IsConnected лучше проверять QuikTrader.IsConnected? Просто я посмотрел в документацию и выбрал из двух то свойство, про которое было понятно написано =)
Понаблюдал тут на досуге за ходом развития событий, происходит следующее:
9:55 - MarketTime показывает глубокую ночь, 2:00-4:00, в квике в статусбаре времени сервера нет, OnProcess у стратегии почему-то вызывается.
9:56-9:57 - в квике появляется время сервера, в MarketTime соответственно оно тоже перескакивает с ночи на текущее, OnProcess вызываться перестает.
10:00 и далее - MarketTime показывает корректное время, но OnProcess не вызывается, через энндцать секунд я перезапускаю стратегию, после этого все ок.
Интересно, почему OnProcess вызывается ночью, но не вызывается сразу после 10 утра, пока не перезапустишь стратегию.
Alter:
Понаблюдал тут на досуге за ходом развития событий, происходит следующее:
9:55 - MarketTime показывает глубокую ночь, 2:00-4:00, в квике в статусбаре времени сервера нет, OnProcess у стратегии почему-то вызывается.
9:56-9:57 - в квике появляется время сервера, в MarketTime соответственно оно тоже перескакивает с ночи на текущее, OnProcess вызываться перестает.
10:00 и далее - MarketTime показывает корректное время, но OnProcess не вызывается, через энндцать секунд я перезапускаю стратегию, после этого все ок.
Интересно, почему OnProcess вызывается ночью, но не вызывается сразу после 10 утра, пока не перезапустишь стратегию.
А интервал у стратегии какой? Какие образом перезапустили стратегию?
Единственное отличие, которое вижу - OnProcess в начале дня выполняется, но ломается после вечернего клиринга. Помогает стоп/старт стратегии (как воркэраунд).
еще наблюдения:
интервал - 2 секунды
таймфрейм - 10 минут
несколько стратегий
OnProcess перестает вызываться через интервал равный таймфрейму, для ВСЕХ стратегий одновременно.
Например, я запускаю одну стратегию в 19:04, вторую в 19:07. В 19:14 у обоих стратегий перестает вызываться OnProcess. Для 3х и больше стратегий аналогично. Локаются все. Дочерние в том числе.
А сегодня еще и в квике время сервера встало колом до начала сессии, да так и осталось. Михаил, может в свете всего описанного в этой теме невызов OnProcess в неторговое время сделать отключаемым?
Мы используем куки для обеспечения лучшего опыта на нашем сайте. Продолжая использовать наш сайт, вы соглашаетесь на использование куки.
Комментарии (15)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Ситуация воспроизвелась. OnProcess запускается раз в секунду. Утром он в последний раз запустился в 9:55:07 и стал вызываться снова только после того, как специально обученный костыль перезапустил стратегию в 10:00:18.
Ситуация повторяется только в не торговое время?
Да, пока что отлавливал сабж только перед началом утренней сессии.
Может у вас в стратегии какая проверка стоит? Еще не плохо было бы проверить состояние QuikTrader.IsConnected.
QuikTrader.IsConnected был true. Точнее я проверял Terminal.IsConnected, но как я понимаю это будет одно и то же. В стратегии в OnProcess в самом начале метода запоминается время его вызова и периодически проверяется.
Разное. Terminal проверяет подключение по косвенным признакам, а QuikTrader.IsConnected через АПИ. С точки зрения логики это одно и то же, но могут быть и различия в особых ситуациях. То, что у вас не стартует до торгов явно не является обычной практикой (хотя бы взять тот факт, что это до торгов).
Вы пробовали отладчиком поставить точку останова в начало метода?
Отладчиком проверял, метод не вызывается. Так вместо Terminal.IsConnected лучше проверять QuikTrader.IsConnected? Просто я посмотрел в документацию и выбрал из двух то свойство, про которое было понятно написано =)
Сегодня вывел в лог оба IsConnected, получилось вот так:
Market time = 22.04.2011 10:00:24 Terminal.IsConnected = False QuikTrader.IsConnected = True Last OnProcess launch time = 22.04.2011 9:55:44
Может Terminal.IsConnected = False виновато?
Нет, не виновато.
Понаблюдал тут на досуге за ходом развития событий, происходит следующее: 9:55 - MarketTime показывает глубокую ночь, 2:00-4:00, в квике в статусбаре времени сервера нет, OnProcess у стратегии почему-то вызывается. 9:56-9:57 - в квике появляется время сервера, в MarketTime соответственно оно тоже перескакивает с ночи на текущее, OnProcess вызываться перестает. 10:00 и далее - MarketTime показывает корректное время, но OnProcess не вызывается, через энндцать секунд я перезапускаю стратегию, после этого все ок.
Интересно, почему OnProcess вызывается ночью, но не вызывается сразу после 10 утра, пока не перезапустишь стратегию.
А интервал у стратегии какой? Какие образом перезапустили стратегию?
Интервал 1 секунда, перезапустил через strategy.Stop(); strategy.Start();
У меня практически такая же проблема (http://stocksharp.com/forum/1602/vypolnieniie-TimeFrameStrategy/) Версия S# 3.0.19.0.
Единственное отличие, которое вижу - OnProcess в начале дня выполняется, но ломается после вечернего клиринга. Помогает стоп/старт стратегии (как воркэраунд).
еще наблюдения: интервал - 2 секунды таймфрейм - 10 минут несколько стратегий
OnProcess перестает вызываться через интервал равный таймфрейму, для ВСЕХ стратегий одновременно. Например, я запускаю одну стратегию в 19:04, вторую в 19:07. В 19:14 у обоих стратегий перестает вызываться OnProcess. Для 3х и больше стратегий аналогично. Локаются все. Дочерние в том числе.
А сегодня еще и в квике время сервера встало колом до начала сессии, да так и осталось. Михаил, может в свете всего описанного в этой теме невызов OnProcess в неторговое время сделать отключаемым?