Делаю так:
OnStarted(){
/* ... */
this._basketstrategy = new BasketStrategy(BasketStrategyFinishModes.All);
this.ChildStrategies.Add(_basketstrategy);
_basketstrategy.ChildStrategies.AddRange(strategiesarray);
/* ... */
}
OnTimer(){
var childstrategies = (this.ChildStrategies != null) ? this.ChildStrategies.ToArray() : new Strategy[] { };
var basketstrategies = (this._basketstrategy != null) ? _basketstrategy.ChildStrategies.ToArray() : new Strategy[]{};
var orders1 = this.Orders.ToArray();
var orders2 = this._basketstrategy.Orders.ToArray();
var orders3 = childstrategies.Select(s => s.Orders).SelectMany(so => so).ToArray();
var orders4 = basketstrategies.Select(s => s.Orders).SelectMany(so => so).ToArray();
}
после выставления ордера одной из дочерних стратегий из strategiesarray только orders4 возвращает выставленные ордера. остальные показывают отсутствие ордеров.
Так и должно быть или это ошибка? Почему parent-стратегии не транслируют массив ордеров Orders своих дочерних стратегий?
Kommentare (3)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Кто именно выставляет заявки? Какая версия библиотек? Что в логах?
версия 4.1.19.1
в логах сообщений об ошибках нет:
Кроме того в материнской стратегии события this.OrderChanged приходят, а this.OrderRegistered нет (хотя в дочерней стратегии this.OrderRegistered срабатывает) В версии 1.19 как раз баг "11. Не работает правило Strategy.WhenOrderRegistered." было написано, что вылечен. Видимо не до конца.