Делаю так:
Код
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 своих дочерних стратегий?