Добрый день
Попытка получить сделки из ордер лога дала результат только в виде 2 сделок (16:33:06.216 и 16:56:26.387).
https://drive.google.com/open?id=145etRqDqYqbP4lCK0dFjZySxTaPDa1R0
Добрый день
Попытка получить сделки из ордер лога дала результат только в виде 2 сделок (16:33:06.216 и 16:56:26.387).
https://drive.google.com/open?id=145etRqDqYqbP4lCK0dFjZySxTaPDa1R0
Комментарии (14)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Попробовал на данных не 2014, а 2018 - количество сделок стало больше, но львиная их доля так же пропущена.
OrderLogCount = 25726
TradesCount = 572
A.zip
Добрый день
Возможно проблема с данными. Проверьте сами данные. Сколько изначально в них сделок.
Добрый день
Если я правильно смотрю, то выходит 13026 сделок
Пожалуйста уточните ваш ответ.
Ок
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 ;
}
Получил List<ExecutionMessage> ordLogs (количество ExecutionMessage ордер лога = 25726) Пройдясь по каждому сообщению, отсортировал по o.OrderState == OrderStates.Done и сохранил результат в trades6 (List<ExecutionMessage>)
"Возможно проблема с данными. Проверьте сами данные. Сколько изначально в них сделок." Верно ли, что trades6.Count = искомому количеству сделок?
Проверять строчку на сделку можно по полю TradeId
По данному полю, где TradeId != null, количество сделок = 1144.
Используя метод var trades = ordLogs.ToTicks().ToList();, получаем trades.Count = 572
У меня что-то не сходится. 1144-572 = 572. Я что-то фундаментально не догоняю, как так ordLogs.ToTicks().ToList().Count * 2 == количеству сделок, где TradeId != null?
В сделке участвуют две стороны.
"В сделке участвуют две стороны." Во туплю.
Причём более 1 раза. http://doc.stocksharp.ru/html/T_StockSharp_Messages_OrderStates.htm
Добрый день
Подскажите пожалуйста, чем отличаются 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
Первое это инициатор сделки. Второе это направление заявки в стакане.
Верно. Просто получается, если инициатор сделки sell, то и направление заявки - sell. Не могу уловить мысль, какова идея 2 свойств, которые копируют друг друга?
Верно. Просто получается, если инициатор сделки sell, то и направление заявки - sell. Не могу уловить мысль, какова идея 2 свойств, которые копируют друг друга?
Добрый день
В данном случае заполнение полей идёт по источнику. Возможно вам стоит обратиться к бирже или брокеру с разъяснениям по поводу транслируемого значения.