← Atrás

Comentarios (14)

Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario

Дмитрий_
Дмитрий_ Autor

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

Support
Support

Добрый день

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

Дмитрий_
Дмитрий_ Autor

Добрый день

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

Support
Support

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

Дмитрий_
Дмитрий_ Autor

Ок

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
Support

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

Дмитрий_
Дмитрий_
Дмитрий_ Autor

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

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

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

Support
Support

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

Дмитрий_
Дмитрий_
Дмитрий_ Autor

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

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

Дмитрий_
Дмитрий_ Autor

Добрый день

Подскажите пожалуйста, чем отличаются 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

Support
Support

Первое это инициатор сделки. Второе это направление заявки в стакане.

Дмитрий_
Дмитрий_ Autor

Верно. Просто получается, если инициатор сделки sell, то и направление заявки - sell. Не могу уловить мысль, какова идея 2 свойств, которые копируют друг друга?

Дмитрий_
Дмитрий_ Autor

Верно. Просто получается, если инициатор сделки sell, то и направление заявки - sell. Не могу уловить мысль, какова идея 2 свойств, которые копируют друг друга?

Support
Support

Добрый день

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

Дмитрий_