Делаю так:
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 своих дочерних стратегий?
コメント (3)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
Кто именно выставляет заявки? Какая версия библиотек? Что в логах?
версия 4.1.19.1
в логах сообщений об ошибках нет:
Кроме того в материнской стратегии события this.OrderChanged приходят, а this.OrderRegistered нет (хотя в дочерней стратегии this.OrderRegistered срабатывает) В версии 1.19 как раз баг "11. Не работает правило Strategy.WhenOrderRegistered." было написано, что вылечен. Видимо не до конца.