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


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

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

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



Спасибо:


Георгий

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


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

_price = Volume * Security.ShrinkPrice(this.MyTrades.Where(s => s.Trade.Security == Security).GetAveragePrice());
Спасибо: vovka_

Георгий

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


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

Knup

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


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

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

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


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

loading
clippy