Различия между созданием правил внутри стратегии и обработкой конкретных событий

Различия между созданием правил внутри стратегии и обработкой конкретных событий
Atom
9/21/2011
frontman


Я не совсем понимаю в каких случаях лучше использовать создание правил а в каких обработку событий. Вот например событие появления новых сделок я могу обработать с помощью правила и с помощью события то же. В чем тогда разница? И еще как быть с входными параметрами? Вот например при обработки события NewMyTrades в качестве входного параметра передаются новые сделки, в случае с правилом нет.


Tags:


Thanks:


1 2  >
esper

Avatar
Date: 9/21/2011
Reply


frontman: Я не совсем понимаю в каких случаях лучше использовать создание правил а в каких обработку событий. Вот например событие появления новых сделок я могу обработать с помощью правила и с помощью события то же. В чем тогда разница?

  • Правила автоматизируют процесс подписки/отписки от событий, т.е. не надо думать когда и где отписаться от события.
  • Можно создавать цепочки обработчиков с различными дополнительными условиями.
  • Форма записи кода становится более декларативной.
  • Есть множество предопределенных правил.

frontman: И еще как быть с входными параметрами? Вот например при обработки события NewMyTrades в качестве входного параметра передаются новые сделки, в случае с правилом нет.

this
	.When(this.StrategyNewMyTrades())
	.Do<IEnumerable<MyTrades>>(trades =>
	{
	}
Thanks: frontman

frontman

Avatar
Date: 9/21/2011
Reply


Как то странно... А где посмотреть какие данные в результате срабатывания правила генерируются? Как вы узнали что при срабатывании правила на событие StrategyNewMyTrades() у нас на выходе будет IEnumerable?

Thanks:

esper

Avatar
Date: 9/21/2011
Reply


frontman: Как то странно... А где посмотреть какие данные в результате срабатывания правила генерируются? Как вы узнали что при срабатывании правила на событие StrategyNewMyTrades() у нас на выходе будет IEnumerable? На форуме этот вопрос поднимался уже, еще в документации указано

Thanks: frontman

Supervisor

Avatar
Date: 10/28/2011
Reply


esper: Правила автоматизируют процесс подписки/отписки от событий, т.е. не надо думать когда и где отписаться от события. Можно подробнее насчет отписки от событий? Once() - полезная штука, но я не нашел стандартного способа просто отменить правило в любой момент. Мне пришлось присваивать всем правилам имена и написать функцию для удаления правил по имени.

Thanks:

Mikhail Sukhov

Avatar
Date: 10/28/2011
Reply


Supervisor: Мне пришлось присваивать всем правилам имена и написать функцию для удаления правил по имени.

А почему не работать с объектами StrategyRule?

Thanks:

Supervisor

Avatar
Date: 10/28/2011
Reply


Mikhail Sukhov:

Supervisor: Мне пришлось присваивать всем правилам имена и написать функцию для удаления правил по имени.

А почему не работать с объектами StrategyRule? А как можно получить объект кроме как Strategy.Rules.Last()? Напрямую к конструктору нет доступа..

Thanks:

Mikhail Sukhov

Avatar
Date: 10/28/2011
Reply


Supervisor: А как можно получить объект кроме как Strategy.Rules.Last()? Напрямую к конструктору нет доступа..

Вы посмотри сигнатуры методов When и Do, что они возвращают.

Thanks: Supervisor

InsiderHSE

Avatar
Date: 10/30/2011
Reply


Михаил, а возможно ли приостановить работу правила, а потом возобновить?

Thanks:

Alexander

Avatar
Date: 10/30/2011
Reply


InsiderHSE: Михаил, а возможно ли приостановить работу правила, а потом возобновить?

Suspend

Thanks:

pehas

Avatar
Date: 11/2/2011
Reply


esper:

frontman: Как то странно... А где посмотреть какие данные в результате срабатывания правила генерируются? Как вы узнали что при срабатывании правила на событие StrategyNewMyTrades() у нас на выходе будет IEnumerable? На форуме этот вопрос поднимался уже, еще в документации указано

Я так понял, что .Do передаются параметры, генерируемые событием в .When. А как передать свой параметр?


     this
	.When(this.StrategyNewMyTrades())
	.Do(DoTrade);

     private void DoTrade(string s)
     {
        this.AddInfoLog(s);
     }

Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy