Trading algorítmico para .NET e Python✦86+ conectores · bolsas · corretoras · cripto✦S#.Designer · backtest · otimizar · ao vivo✦Uma comunidade de 31,464+ traders e desenvolvedores✦Trading algorítmico para .NET e Python✦86+ conectores · bolsas · corretoras · cripto✦S#.Designer · backtest · otimizar · ao vivo✦Uma comunidade de 31,464+ traders e desenvolvedores✦
Заметил, что робот проворонил сигнал, в логах ничего не нашел, задебажил и увидел, что не вызывается OnProcess. В последнем вызове PropertyChanged у стратегии состояние Runned. Стратегия унаследована от TimeFrameStrategy, S# последний.
Comentários (15)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Ситуация воспроизвелась. 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 в неторговое время сделать отключаемым?
Utilizamos cookies para garantir a melhor experiência em nosso site. Ao continuar a usar nosso site, você concorda com o uso de cookies.
Comentários (15)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Ситуация воспроизвелась. 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 в неторговое время сделать отключаемым?