← 返回

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());

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

本主题对您有帮助吗?

分享主题

评论 (4)

登录创建账户, 登录或注册以发表评论

Mikhail Sukhov
Mikhail Sukhov

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

vader
vader 作者

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

Mikhail Sukhov
Mikhail Sukhov

vader:

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

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

vader
vader 作者

Mikhail Sukhov:

vader:

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

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

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

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

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


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