OrderLog -> Trades
Atom
14.04.2018
Дмитрий_


Добрый день

Попытка получить сделки из ордер лога дала результат только в виде 2 сделок (16:33:06.216 и 16:56:26.387).

https://drive.google.com/open?id=145etRqDqYqbP4lCK0dFjZySxTaPDa1R0


Теги:


Спасибо:


1 2  >
Дмитрий_

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


Попробовал на данных не 2014, а 2018 - количество сделок стало больше, но львиная их доля так же пропущена. OrdLogAFLT-6.18.PNG OrderLogCount = 25726 TradesAFLT-6.18.PNG TradesCount = 572 A.zip

OrdLogAFLT-6.18.PNG 79 KB (1295) TradesAFLT-6.18.PNG 77 KB (1131) A.zip 275 KB (821)
Спасибо:

Support

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


Добрый день

Возможно проблема с данными. Проверьте сами данные. Сколько изначально в них сделок.

Спасибо:

Дмитрий_

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


Добрый день

Если я правильно смотрю, то выходит 13026 сделок CountDoneTrades.PNG

CountDoneTrades.PNG 116 KB (903)
Спасибо:

Support

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


Пожалуйста уточните ваш ответ.

Спасибо:

Дмитрий_

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


Ок

var ordLogStorage = storageRegistry1.GetOrderLogMessageStorage(new Security { Id = "AFLT-6.18@MICEX", Board = ExchangeBoard.Micex }); var ordLogs = ordLogStorage.Load(new DateTime(2018, 4, 13), new DateTime(2018, 4, 14)).ToList();

foreach (var o in ordLogs) { if (o.OrderState == OrderStates.Done) { ExecutionMessage executionMessage = new ExecutionMessage ;

                trades6.Add(executionMessage);
            }

}

Получил List<ExecutionMessage> ordLogs (количество ExecutionMessage ордер лога = 25726) Пройдясь по каждому сообщению, отсортировал по o.OrderState == OrderStates.Done и сохранил результат в trades6 (List<ExecutionMessage>)

"Возможно проблема с данными. Проверьте сами данные. Сколько изначально в них сделок." Верно ли, что trades6.Count = искомому количеству сделок?

Спасибо:

Support

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


Проверять строчку на сделку можно по полю TradeId

Спасибо: Дмитрий_

Дмитрий_

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


По данному полю, где TradeId != null, количество сделок = 1144.

Используя метод var trades = ordLogs.ToTicks().ToList();, получаем trades.Count = 572

У меня что-то не сходится. 1144-572 = 572. Я что-то фундаментально не догоняю, как так ordLogs.ToTicks().ToList().Count * 2 == количеству сделок, где TradeId != null?

Спасибо:

Support

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


В сделке участвуют две стороны.

Спасибо: Дмитрий_

Дмитрий_

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


"В сделке участвуют две стороны." Во туплю.

Причём более 1 раза. http://doc.stocksharp.ru/html/T_StockSharp_Messages_OrderStates.htm

Спасибо:

Дмитрий_

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


Добрый день

Подскажите пожалуйста, чем отличаются executionMessage.OriginSide ( http://doc.stocksharp.ru/html/P_StockSharp_Messages_ExecutionMessage_OriginSide.htm - Инициатор сделки (продавец или покупатель)) и executionMessage.Side ( http://doc.stocksharp.ru/html/P_StockSharp_Messages_ExecutionMessage_Side.htm - Направление заявки (покупка или продажа))? Логически OriginSide == Side

Спасибо:
1 2  >

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

loading
clippy