Цена реальной сделки


Цена реальной сделки
Atom
1/23/2018


Регистрирую заявку допустим покупка по цене 25075 объемом 50 лотов. В стакане несколько заявок/бидов на продажу (по цене 25060, 25065 и 25070) и моя заявка должна собрать весь объемом этих трех заявок.

В OrderChange у объекта заявки приходит цена заявки, которая указана при ее создании, но по факту реальная цена сделки средняя между 25060/25065/25070. В этом случае в OrderChange не приходит частичное исполнение заявки, а приходит одно событие, что заявка исполнилась, т.к. она собрала объем этих трех заявок и состояние заявки исполнена. Как оптимально и быстро узнать реальную цену совершенных сделок? Мало ли кто-то быстро поставит большой объем в 25060 и сделка совершится по этой цене. Мне для точных расчетов необходимо знать точную/реальную цену сделки, которая совершилась на бирже по факту.

В квике есть Таблица сделок. В ней, как раз показываются все исполненные сделки с указанием Id заявки, реальной цены сделки на бирже, по которой прошла сделка и объем этой сделки.


Георгий

Avatar
Date: 1/23/2018
Reply


Например как-то так:

_price = Volume * Security.ShrinkPrice(this.MyTrades.Where(s => s.Trade.Security == Security).GetAveragePrice());
Thanks: vovka_

Георгий

Avatar
Date: 1/23/2018
Reply


Если нужна цена каждой сделки, то в MyTrades ищите по номеру ордера все связанные сделки
Thanks: vovka_

Knup

Avatar
Date: 1/24/2018
Reply


Можете использовать правило WhenNewTrade для ордера

order.WhenNewTrade(Connector)
.Do(mytrade =>
{
})
.Apply(this);

и отлавливать каждую сделку, исполненную по заявке.
В mytrade.Trade.Volume будет указан объём сделки, в mytrade.Trade.Price - цена.
Thanks: vovka_


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

loading
clippy