[Bug] действие на условие исполняется больше одного раза


[Bug] действие на условие исполняется больше одного раза
Atom
8/9/2011


Событийная стратегия
Code

protected override void OnStarting()
		{
			_order = new Order
			{
				Portfolio = this.Portfolio,
				Volume =  _partOfLot,
				Price = _priceOfOrder,
				Security = this.Security,
				Direction = this._direction,
				Trader = this.Trader,
			};
			this.RegisterOrder(_order);
			
			this
				.When(StrategyRuleConditionHelper.Matched(_order))
				.Do(Start);
			
			foreach(StrategyRule s in this.Rules){
				MessageBox.Show(s.Name);
			}
		}
		
		private void Start()
		{
			MessageBox.Show(_order.Id.ToString());
			_curLotBuySellNow += _order.Volume;
			
			if (_curLotBuySellNow >= this.Volume){
				this.Stop();
				return;
			}
		}

                private Order _order;

Запускаю стратегию, она отправляет первую заявку, когда заявки исполняется, метод Start вызывается 3 или 4 раза. Один раз он был вызван 1 раз.
По-моему это баг.
В списке правил - одно правило, полное исполнение.
Никаких сообщений об ощибках нет.

Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 8/9/2011
Reply


vader Go to
Событийная стратегия
В списке правил - одно правило, полное исполнение.
Никаких сообщений об ощибках нет.


Наверное Квик шлет изменения несколько раз по уже измененной заявке. Сделайте правило одноразовым.
Thanks:

vader

Avatar
Date: 8/10/2011
Reply


На сколько я понимаю, StrategyRuleConditionHelper.Matched(_order)
приводится в исполнение событием Strategy.OrderChanged.
Получается и это событие инициируется несколько раз от одной и той же сделки?
Можно ли это как-то фильтровать?
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy