esper
|
Дата: 21.09.2011
frontman  Я не совсем понимаю в каких случаях лучше использовать создание правил а в каких обработку событий. Вот например событие появления новых сделок я могу обработать с помощью правила и с помощью события то же. В чем тогда разница? - Правила автоматизируют процесс подписки/отписки от событий, т.е. не надо думать когда и где отписаться от события.
- Можно создавать цепочки обработчиков с различными дополнительными условиями.
- Форма записи кода становится более декларативной.
- Есть множество предопределенных правил.
frontman  И еще как быть с входными параметрами? Вот например при обработки события NewMyTrades в качестве входного параметра передаются новые сделки, в случае с правилом нет. Code
this
.When(this.StrategyNewMyTrades())
.Do<IEnumerable<MyTrades>>(trades =>
{
}
|
|
|
|
frontman
|
Дата: 21.09.2011
Как то странно... А где посмотреть какие данные в результате срабатывания правила генерируются? Как вы узнали что при срабатывании правила на событие StrategyNewMyTrades() у нас на выходе будет IEnumerable<MyTrades>?
|
Автор топика
|
|
|
esper
|
Дата: 21.09.2011
frontman  Как то странно... А где посмотреть какие данные в результате срабатывания правила генерируются? Как вы узнали что при срабатывании правила на событие StrategyNewMyTrades() у нас на выходе будет IEnumerable<MyTrades>? На форуме этот вопрос поднимался уже, еще в документации указано
|
|
|
|
Supervisor
|
Дата: 28.10.2011
esper  Правила автоматизируют процесс подписки/отписки от событий, т.е. не надо думать когда и где отписаться от события.
Можно подробнее насчет отписки от событий? Once() - полезная штука, но я не нашел стандартного способа просто отменить правило в любой момент. Мне пришлось присваивать всем правилам имена и написать функцию для удаления правил по имени.
|
|
|
|
Mikhail Sukhov
|
Дата: 28.10.2011
Supervisor  Мне пришлось присваивать всем правилам имена и написать функцию для удаления правил по имени. А почему не работать с объектами StrategyRule?
|
|
|
|
Supervisor
|
Дата: 28.10.2011
Mikhail Sukhov  Supervisor  Мне пришлось присваивать всем правилам имена и написать функцию для удаления правил по имени. А почему не работать с объектами StrategyRule? А как можно получить объект кроме как Strategy.Rules.Last()? Напрямую к конструктору нет доступа..
|
|
|
|
Mikhail Sukhov
|
Дата: 28.10.2011
Supervisor  А как можно получить объект кроме как Strategy.Rules.Last()? Напрямую к конструктору нет доступа..
Вы посмотри сигнатуры методов When и Do, что они возвращают.
|
|
|
|
InsiderHSE
|
Дата: 30.10.2011
Михаил, а возможно ли приостановить работу правила, а потом возобновить?
|
|
|
|
Alexander
|
Дата: 30.10.2011
InsiderHSE  Михаил, а возможно ли приостановить работу правила, а потом возобновить? Suspend
|
|
|
|
pehas
|
Дата: 02.11.2011
esper  frontman  Как то странно... А где посмотреть какие данные в результате срабатывания правила генерируются? Как вы узнали что при срабатывании правила на событие StrategyNewMyTrades() у нас на выходе будет IEnumerable<MyTrades>? На форуме этот вопрос поднимался уже, еще в документации указано Я так понял, что .Do передаются параметры, генерируемые событием в .When. А как передать свой параметр? Code
this
.When(this.StrategyNewMyTrades())
.Do(DoTrade);
private void DoTrade(string s)
{
this.AddInfoLog(s);
}
|
|
|
|
esper
|
Дата: 02.11.2011
Code
this
.When(this.StrategyNewMyTrades())
.Do(trades => DoTrade("param1"));
private void DoTrade(string s)
{
this.AddInfoLog(s);
}
|
|
|
|
InsiderHSE
|
Дата: 02.11.2011
Alexander Mukhanchikov  InsiderHSE  Михаил, а возможно ли приостановить работу правила, а потом возобновить? Suspend А где он находится? Если имеется в виду SuspendRules, то он приостанавливает все правила, а мне нужно приостановить работу одного конкретного правила, чтобы при этом остальные продолжали выполняться.
|
|
|
|
Alexander
|
Дата: 02.11.2011
InsiderHSE  Alexander Mukhanchikov  InsiderHSE  Михаил, а возможно ли приостановить работу правила, а потом возобновить? Suspend А где он находится? Если имеется в виду SuspendRules, то он приостанавливает все правила, а мне нужно приостановить работу одного конкретного правила, чтобы при этом остальные продолжали выполняться. IsRulesSuspended = true для стратегии
|
|
|
|
InsiderHSE
|
Дата: 02.11.2011
Alexander Mukhanchikov  InsiderHSE  Alexander Mukhanchikov  InsiderHSE  Михаил, а возможно ли приостановить работу правила, а потом возобновить? Suspend А где он находится? Если имеется в виду SuspendRules, то он приостанавливает все правила, а мне нужно приостановить работу одного конкретного правила, чтобы при этом остальные продолжали выполняться. IsRulesSuspended = true для стратегии Например, у меня в стратегии 2 правила, Rule1 и Rule2. Как мне приостановить работу Rule1, но при этом чтобы Rule2 оставалось включенным? Свойство стратегии IsRulesSuspended не имеет публичного сеттера и, судя по мануалу, является индикатором, приостановлены ли все правила в стратегии через метод Strategy.SuspendRules().
|
|
|
|
Mikhail Sukhov
|
Дата: 03.11.2011
InsiderHSE  Например, у меня в стратегии 2 правила, Rule1 и Rule2. Как мне приостановить работу Rule1, но при этом чтобы Rule2 оставалось включенным? Логически через код. Флажок например.
|
|
|
|
frontman
|
Дата: 07.11.2011
Mikhail Sukhov  InsiderHSE  Например, у меня в стратегии 2 правила, Rule1 и Rule2. Как мне приостановить работу Rule1, но при этом чтобы Rule2 оставалось включенным? Логически через код. Флажок например. Ну вообще то канешь не оч хорошо это... Глобальные параметры... Таким образом если например у меня 5 стратегий и мне надо по одной каждую приостанавливать, что создавать 5 флажков?!)) Я о том что может быть стоит как то расширить класс правил. Там же есть метод Periodical, ну почему бы не сделать что то подобное для приостановки (временной) правила...
|
Автор топика
|
|
|
Mikhail Sukhov
|
Дата: 09.11.2011
frontman  Я о том что может быть стоит как то расширить класс правил. Там же есть метод Periodical, ну почему бы не сделать что то подобное для приостановки (временной) правила...
Логично. В след версии на КодеПлексе появится.
|
|
|
|
Supervisor
|
Дата: 09.11.2011
frontman  Я о том что может быть стоит как то расширить класс правил. Там же есть метод Periodical, ну почему бы не сделать что то подобное для приостановки (временной) правила... Точно, именно этого не хватает :) Еще от себя добавлю, было бы неплохо сделать метод для ре-активации .Once правила, чтобы не создавать его каждый раз заново.
|
|
|
|
Mikhail Sukhov
|
Дата: 09.11.2011
Supervisor  Еще от себя добавлю, было бы неплохо сделать метод для ре-активации .Once правила, чтобы не создавать его каждый раз заново. Такого точно не будет, потому что правило не просто отрабатывает, оно еще и диспозиться. Положил на КП версию Алго, где появился метод Or. Можно комбинировать по несколько условий для одного действия.
|
|
|
|
frontman
|
Дата: 10.11.2011
|
Автор топика
|
|