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


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

Теги:


Спасибо:




10 Ответов
esper

Фотография
Программист
Дата: 07.11.2011
Ответить


Код
.Do(LogNewOrder)
Спасибо:

frontman

Фотография
Дата: 07.11.2011
Ответить


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


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

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

Supervisor

Фотография
Дата: 07.11.2011
Ответить


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


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


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

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

Теперь ругается на аргумент trade к Activate. Я так понимаю его надо прописать где-то, только не пойму где Confused
Автор топика
Спасибо:

frontman

Фотография
Дата: 07.11.2011
Ответить


Supervisor Перейти

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

Раньше так и было.
Спасибо:

Supervisor

Фотография
Дата: 07.11.2011
Ответить


frontman Перейти
Supervisor Перейти

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

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

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

esper

Фотография
Программист
Дата: 07.11.2011
Ответить


Supervisor Перейти
Теперь ругается на аргумент trade к Activate. Я так понимаю его надо прописать где-то, только не пойму где Confused

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

frontman

Фотография
Дата: 07.11.2011
Ответить


Supervisor Перейти
frontman Перейти
Supervisor Перейти

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

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

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


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

Supervisor

Фотография
Дата: 07.11.2011
Ответить


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

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

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

esper

Фотография
Программист
Дата: 07.11.2011
Ответить


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

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

Supervisor

Фотография
Дата: 07.11.2011
Ответить


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

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

Спасибо большое, помогло!
Автор топика
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy