Обновление 4.0.4 - не работают правила стратегий


Обновление 4.0.4 - не работают правила стратегий
Atom
11/7/2011


Обновился 4.0.3 -> 4.0.4
Перестали работать все правила стратегий с передаваемыми параметрами:

Tags:


Thanks:


esper

Avatar
Date: 11/7/2011
Reply


Code
.Do(LogNewOrder)
Thanks:

frontman

Avatar
Date: 11/7/2011
Reply


А разве в версии 4.0.3 правила записываются не так
Code
this.When(this.StrategyNewOrder())
.Do(DetectTradePrice)


В версии 4.0.4 точно так.

И какая сигнатура у методов DetectTradePrice и LogNewPrder?
Thanks:

Supervisor

Avatar
Date: 11/7/2011
Reply


frontman Go to
И какая сигнатура у методов DetectTradePrice и LogNewPrder?


void DetectTradePrice(IEnumerable<MyTrade>)
void LogNewOrder(Order)


Раньше я считал что тип после Do - это тип передаваемого значения в делегат, а оказывается - возвращаемого? Странно что раньше все работало нормально и не ругалось :)

Это исправил, спасибо, но теперь возник другой вопрос:
В 4.0.3 в классе моего правила стратегии такая конструкция работала:
Code
private void OnMyTradeDetected(MyDetectedTrade trade)
			{
				Activate(trade);
			}

Теперь ругается на аргумент trade к Activate. Я так понимаю его надо прописать где-то, только не пойму где [confused]
Thanks:

frontman

Avatar
Date: 11/7/2011
Reply


Supervisor Go to

...
Раньше я считал что тип после Do - это тип передаваемого значения в делегат, а оказывается - возвращаемого? Странно что раньше все работало нормально и не ругалось :)
...

Раньше так и было.
Thanks:

Supervisor

Avatar
Date: 11/7/2011
Reply


frontman Go to
Supervisor Go to

...
Раньше я считал что тип после Do - это тип передаваемого значения в делегат, а оказывается - возвращаемого? Странно что раньше все работало нормально и не ругалось :)
...

Раньше так и было.

Получается, в 4.0.3 код Do(DetectTradePrice) должен работать, а он не работает.
Работает только Do<IEnumerable<MyTrade>>(DetectTradePrice)
Thanks:

esper

Avatar
Date: 11/7/2011
Reply


Supervisor Go to
Теперь ругается на аргумент trade к Activate. Я так понимаю его надо прописать где-то, только не пойму где [confused]

Какую ошибку выдает?
Thanks:

frontman

Avatar
Date: 11/7/2011
Reply


Supervisor Go to
frontman Go to
Supervisor Go to

...
Раньше я считал что тип после Do - это тип передаваемого значения в делегат, а оказывается - возвращаемого? Странно что раньше все работало нормально и не ругалось :)
...

Раньше так и было.

Получается, в 4.0.3 код Do(DetectTradePrice) должен работать, а он не работает.
Работает только Do<IEnumerable<MyTrade>>(DetectTradePrice)


Я просто не помню с какой версии эти изменения появились. Может быть в 4.0.3 их и не было еще[blush]
Thanks:

Supervisor

Avatar
Date: 11/7/2011
Reply


esper Go to
Supervisor Go to
Теперь ругается на аргумент trade к Activate. Я так понимаю его надо прописать где-то, только не пойму где [confused]

Какую ошибку выдает?

"Ни одна из перегрузок метода "Activate" не принимает "1" аргументов"
Thanks:

esper

Avatar
Date: 11/7/2011
Reply


Supervisor Go to
"Ни одна из перегрузок метода "Activate" не принимает "1" аргументов"

Попробуйте наследование от StrategyRule<MyDetectedTrade>, а не StrategyRule
Thanks: Supervisor

Supervisor

Avatar
Date: 11/7/2011
Reply


esper Go to
Supervisor Go to
"Ни одна из перегрузок метода "Activate" не принимает "1" аргументов"

Попробуйте наследование от StrategyRule<MyDetectedTrade>, а не StrategyRule

Спасибо большое, помогло!
Thanks:


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

loading
clippy