Исчезло событие NewMyTrades для Strategy


Исчезло событие NewMyTrades для Strategy
Atom
9/14/2011


Нельзя ли вернуть событие NewMyStrades в класс Strategy?
Оно позволяло удобно передавать в обработчик пришедший MyTrade. Теперь приходится делать дополнительные проверки.

Вообще, с правилами не все до конца ясно. Михаил, Александр, можете рассказать, с какой целью были созданы правила (в дополнение к стандартным событиям) и почему при срабатывании условия не передаются никакие параметры?
Что-то связанное с производительностью?

Tags:


Thanks:


Alexander

Avatar
Date: 9/14/2011
Reply


Church Go to
Нельзя ли вернуть событие NewMyStrades в класс Strategy?
Оно позволяло удобно передавать в обработчик пришедший MyTrade. Теперь приходится делать дополнительные проверки.

Вообще, с правилами не все до конца ясно. Михаил, Александр, можете рассказать, с какой целью были созданы правила (в дополнение к стандартным событиям) и почему при срабатывании условия не передаются никакие параметры?
Что-то связанное с производительностью?


Не совсем вопросы понятны.
NewMyTrades у Strategy есть, также передаётся MyTrade, как и раньше.
Code
public event Action<IEnumerable<MyTrade>> NewMyTrades


Если речь идёт про создание дополнительных правил типа LastTradePriceLess, то они созданы для удобства.
Во многие из них передаются параметры при срабатывании (по аналогии с NewMyTrades). Если где-то параметров не хватает - пишите, будем разбираться.


P.S. Перенёс топик в нужный форум, т.к. данная тема не относится к этому топику.
Thanks:

Church

Avatar
Date: 9/14/2011
Reply


Прошу прощения, видимо не из того модуля смотрел, или не подключил нужный референс. MyNewTrades остался. :)

Относительно передаваемых параметров я имел в виду вот что: условие StrategyNewMyTrades не передает в обработчик (который вызывается через .Do()) никаких параметров, в отличие от события MyNewTrades, которое передает IEnumerable<MyTrades>. По-моему, вторая механика удобнее.
Thanks:

esper

Avatar
Date: 9/14/2011
Reply


Church Go to
Прошу прощения, видимо не из того модуля смотрел, или не подключил нужный референс. MyNewTrades остался. :)

Относительно передаваемых параметров я имел в виду вот что: условие StrategyNewMyTrades не передает в обработчик (который вызывается через .Do()) никаких параметров, в отличие от события MyNewTrades, которое передает IEnumerable<MyTrades>. По-моему, вторая механика удобнее.


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

Church

Avatar
Date: 9/14/2011
Reply


esper Go to
Church Go to
Прошу прощения, видимо не из того модуля смотрел, или не подключил нужный референс. MyNewTrades остался. :)

Относительно передаваемых параметров я имел в виду вот что: условие StrategyNewMyTrades не передает в обработчик (который вызывается через .Do()) никаких параметров, в отличие от события MyNewTrades, которое передает IEnumerable<MyTrades>. По-моему, вторая механика удобнее.


Code
this
	.When(this.StrategyNewMyTrades())
	.Do<IEnumerable<MyTrades>>(trades =>
	{
	}

Так я получу все сделки, или только ту порцию, которая спровоцировала событие?
Thanks: lshaton

esper

Avatar
Date: 9/14/2011
Reply


Church Go to
только ту порцию, которая спровоцировала событие
Thanks: Church

Alexander

Avatar
Date: 9/14/2011
Reply


Подтверждаю.
Аналогично для свечек, ордеров, ...
Thanks: Church

Church

Avatar
Date: 9/14/2011
Reply


Понял, большое спасибо. Не знал фишку.
Thanks:

lshaton

Avatar
Date: 9/22/2011
Reply


Church Go to
esper Go to
Church Go to
Прошу прощения, видимо не из того модуля смотрел, или не подключил нужный референс. MyNewTrades остался. :)

Относительно передаваемых параметров я имел в виду вот что: условие StrategyNewMyTrades не передает в обработчик (который вызывается через .Do()) никаких параметров, в отличие от события MyNewTrades, которое передает IEnumerable<MyTrades>. По-моему, вторая механика удобнее.


Code
this
	.When(this.StrategyNewMyTrades())
	.Do<IEnumerable<MyTrades>>(trades =>
	{
	}

Так я получу все сделки, или только ту порцию, которая спровоцировала событие?

А как грамотно подвязать метод Protect к списку сделок:
this
.When(this.StrategyNewMyTrades())
.Do<IEnumerable<MyTrade>>(trades =>
{
// StrategyRuleActionHelper.Protect(trades , new Unit(10), new Unit(10));
...
Эта перегрузка Protect(StrategyRule, IEnumerable<(Of <<'(MyTrade>)>>), Unit, Unit)
не вписывается вышеприведенный фрагмент - почему-то приводит к ошибке. А добавлять
StrategyRuleActionHelper.Protect(this.When(this.StrategyNewMyTrades()), trades, new Unit(40), new Unit(20));
в событие как-то криво.. Может есть идея?
Thanks:

Alexander

Avatar
Date: 9/25/2011
Reply


lshaton Go to
Church Go to
esper Go to
Church Go to
Прошу прощения, видимо не из того модуля смотрел, или не подключил нужный референс. MyNewTrades остался. :)

Относительно передаваемых параметров я имел в виду вот что: условие StrategyNewMyTrades не передает в обработчик (который вызывается через .Do()) никаких параметров, в отличие от события MyNewTrades, которое передает IEnumerable<MyTrades>. По-моему, вторая механика удобнее.


Code
this
	.When(this.StrategyNewMyTrades())
	.Do<IEnumerable<MyTrades>>(trades =>
	{
	}

Так я получу все сделки, или только ту порцию, которая спровоцировала событие?

А как грамотно подвязать метод Protect к списку сделок:
this
.When(this.StrategyNewMyTrades())
.Do<IEnumerable<MyTrade>>(trades =>
{
// StrategyRuleActionHelper.Protect(trades , new Unit(10), new Unit(10));
...
Эта перегрузка Protect(StrategyRule, IEnumerable<(Of <<'(MyTrade>)>>), Unit, Unit)
не вписывается вышеприведенный фрагмент - почему-то приводит к ошибке. А добавлять
StrategyRuleActionHelper.Protect(this.When(this.StrategyNewMyTrades()), trades, new Unit(40), new Unit(20));
в событие как-то криво.. Может есть идея?



Подправили, будет фикс в новой версии
Thanks:


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

loading
clippy