StrategyNewMyTrades произошло, а order.IsMatched() = false
Atom Ответить
10.08.2011


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

_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

Фотография
Автор статей Программист Трейдер
Дата: 10.08.2011
Ответить


Заявка была каким объемом?
Спасибо:

vader

Фотография
Дата: 10.08.2011
Ответить


Mikhail Sukhov Перейти
Заявка была каким объемом?

три.
После этого ,я остановил стратегию, ещё раз запустил её и все норально отработало.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 10.08.2011
Ответить


vader Перейти
Mikhail Sukhov Перейти
Заявка была каким объемом?

три.
После этого ,я остановил стратегию, ещё раз запустил её и все норально отработало.


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

vader

Фотография
Дата: 10.08.2011
Ответить


Mikhail Sukhov Перейти
vader Перейти
Mikhail Sukhov Перейти
Заявка была каким объемом?

три.
После этого ,я остановил стратегию, ещё раз запустил её и все норально отработало.


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


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

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

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

Код

private void Blablabla()
		{
			if(TraderHelper.IsMatched(_order)){
				
				MessageBox.Show(_order.Id.ToString());
Автор топика
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy