Михаил,
почитав темы про стратегии, и в частности ActionStrategy, я понял, что новичкам сложно понять use cases.
Если использовать TimeFrameStrategy, то OnProcess() вызывается с частотой согласно значению Interval. Если использовать ActionStrategy, то условие When() проверяется с частотой согласно значению Interval. Т.о. в обоих случаях мы зависим от значения Interval.
Допустим, я хочу совершать заявки по событию ITrader.NewTrades. Но это событие никак не коррелирует с фиксированным Interval'ом, и может возникать как каждую миллисекунду (напр. RI), так и раз в 5 мин. (второй эшелон) И получается, что мне не подходит ни OnProcess(), ни When(), и свои активности мне надо писать прямо в обработчике ITrader.NewTrades
Можно конечно Intervalвыставить в одну миллисекунду, но это как-то не красиво...
Правильно ли я все понимаю или где-то есть ошибки в моих рассуждениях? Или можно все-таки обернуть в When() событие ITrader.NewTrades, так чтобы время проверки не зависело от Interval?
P.S. еще раз спасибо за отличную библиотеку и великолепную поддержку!
Комментарии (9)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Вот я тоже присоединяюсь к вопросу. Причем, думаю, не я один :)
Всех огорчу. В 3.2, который уже можно скачать, поменялось все кординально. Так что не имеет смысла сейчас изучать ActionStrategy. Он исчез безвозвратно.
На 3.2 я, конечно, со временем переберусь. А пока много уже написано на 2.6.2 и не хотелось бы на переправе коней менять.
Михаил,
может быть вы ответите на первоначальные вопросы хотя бы из чисто академического интереса? К тому же я не один интересуюсь... :)
На 3.2 я, конечно, со временем переберусь. А пока много уже написано на 2.6.2 и не хотелось бы на переправе коней менять.
Михаил,
может быть вы ответите на первоначальные вопросы хотя бы из чисто академического интереса? К тому же я не один интересуюсь... :)
Могу ответить только по последнеи версии. Насчет таких старых версий с наскоку не вспомнить. Нужен особый катализатор.
насколько я понял - поменялось то, что теперь Strategy стал событийным. Но вопрос, как и когда срабатывает событие When остается открытым. Если действительно стратегия может вызывать по событию в шлюзе Itrader, то Вы не огорчили, а очень даже обрадовали :)
Вдогонку - если я правильно понимаю, то если в первом посте Дена слово ActionStrategy заменить на Strategy, то его вопрос будет корректен для версии 3.2?
Не корректен, потому что исчез и интервал.
Вот по последней ответ и волнует если я напишу
Order order = new Order(); ...
this .When(order.Changed()) .Do(SomeThing())
Когда отработает Do? В тот же момент когда заявка изменится в ITrader? Или в Strategy? Надо ли ее обязательно надо регистрировать в статегии this.RegisterOrder(Order)?