← 戻る

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

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

このトピックは参考になりましたか?

トピックを共有

コメント (10)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

esper
esper
.Do(LogNewOrder)
frontman
frontman

А разве в версии 4.0.3 правила записываются не так

this.When(this.StrategyNewOrder())
.Do(DetectTradePrice)

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

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

Supervisor
Supervisor 著者

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

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

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

Это исправил, спасибо, но теперь возник другой вопрос: В 4.0.3 в классе моего правила стратегии такая конструкция работала:

private void OnMyTradeDetected(MyDetectedTrade trade)
			{
				Activate(trade);
			}

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

frontman
frontman

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

Supervisor
Supervisor 著者

frontman:

Supervisor: ... Раньше я считал что тип после Do - это тип передаваемого значения в делегат, а оказывается - возвращаемого? Странно что раньше все работало нормально и не ругалось :) ... Раньше так и было. Получается, в 4.0.3 код Do(DetectTradePrice) должен работать, а он не работает. Работает только Do<IEnumerable<MyTrade>>(DetectTradePrice)

esper
esper

Supervisor: Теперь ругается на аргумент trade к Activate. Я так понимаю его надо прописать где-то, только не пойму где 🤨 Какую ошибку выдает?

frontman
frontman

Supervisor:

frontman:

Supervisor: ... Раньше я считал что тип после Do - это тип передаваемого значения в делегат, а оказывается - возвращаемого? Странно что раньше все работало нормально и не ругалось :) ... Раньше так и было. Получается, в 4.0.3 код Do(DetectTradePrice) должен работать, а он не работает. Работает только Do<IEnumerable<MyTrade>>(DetectTradePrice)

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

Supervisor
Supervisor 著者

esper:

Supervisor: Теперь ругается на аргумент trade к Activate. Я так понимаю его надо прописать где-то, только не пойму где 🤨 Какую ошибку выдает? "Ни одна из перегрузок метода "Activate" не принимает "1" аргументов"

esper
esper

Supervisor: "Ни одна из перегрузок метода "Activate" не принимает "1" аргументов" Попробуйте наследование от StrategyRule<MyDetectedTrade>, а не StrategyRule

Supervisor
Supervisor 著者

esper:

Supervisor: "Ни одна из перегрузок метода "Activate" не принимает "1" аргументов" Попробуйте наследование от StrategyRule<MyDetectedTrade>, а не StrategyRule Спасибо большое, помогло!