← Zurück

StrategyNewMyTrades произошло, а order.IsMatched() = false

У меня событийная стратегия. В начале отправил заявку и стал дожидаться её исполнения.


_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.StrategyNewMyTrades(this))
				.Do(Blablabla);

Заявка была исполнена одной сделкой, но когда происходила проверка на испонения заявки, почему-то она была сочтена не исполненной.


private void Blablabla()
		{
			if(TraderHelper.IsMatched(_order)){
				
				MessageBox.Show(_order.Id.ToString());

Может ли информация о новых сделках прижти раньше,чем информация, о том, исполнена сделка или нет? И что с этим делать?

War dieses Thema hilfreich?

Thema teilen

Kommentare (4)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

Заявка была каким объемом?

vader
vader Autor

Mikhail Sukhov: Заявка была каким объемом? три. После этого ,я остановил стратегию, ещё раз запустил её и все норально отработало.

Mikhail Sukhov
Mikhail Sukhov

vader:

Mikhail Sukhov: Заявка была каким объемом? три. После этого ,я остановил стратегию, ещё раз запустил её и все норально отработало.

У вас ошибка в логике. Не учитываете частичное исполнение заявки.

vader
vader Autor

Mikhail Sukhov:

vader:

Mikhail Sukhov: Заявка была каким объемом? три. После этого ,я остановил стратегию, ещё раз запустил её и все норально отработало.

У вас ошибка в логике. Не учитываете частичное исполнение заявки.

учитывается - вот здесь if(TraderHelper.IsMatched(_order)){

метод должен выполнятся только, когда заявка будет исполнена полностью.

У меня это и произошло. заявка была исполнена одной сделкой. При этом сообщение в этом методе не было выведено


private void Blablabla()
		{
			if(TraderHelper.IsMatched(_order)){
				
				MessageBox.Show(_order.Id.ToString());