Разделение объема на buy/sell volume

Разделение объема на buy/sell volume
Atom
1/24/2014
devruss


Добрый вечер,

Не знаю даже в какую ветку запостить данный вопрос, но он относится и к S#, и к обработке исходных данных от брокера.

Итак, я знаю, что CQG на русский рынок дает не только общий проторгованный объем, но и разбивку на buy volume (объем, прошедний по offer) и на sell volume (объем, прошедший по bid). Ворос, можно ли через Quik получить такую статистику (думаю, что нет), и вопрос можно ли realtime обрабатывать тиковые данные так, чтобы делить объем на buy/sell volume.

В теории, если мы имеем snapshots стаканов и тиковые данные, а также мы знаем, что на русском рынке нет crossed trades (либо OTC reported trades), то любой объем на ленте проходит либо через bid, либо через offer, а значит мы можем видеть через изменение DOM snapshot (изменение состояния стакана) после каждой сделки какой это был объем.

Как минимум это можно было бы закодить для истории и сравнить с данными CQG.

Если такое в принципе возможно, то было бы супер услышать от команды stocksharp как это можно было бы реализовать.



Thanks:


< 1 2 
Иван З.

Avatar
Date: 3/25/2014
Reply


Короче, скажу так, зря мы на S# наезжаем, и умничаем. Все есть и все работает. Приношу свои извинения. [blush]
Кто не верит вот код для проверки

Code
                if (candle.State == CandleStates.Finished)
                {
                    var Volume = candle.TotalVolume;
                    var BuyVolume = candle.VolumeProfileInfo.PriceLevels.Select(level => level.BuyVolume).Sum();
                    var SellVolume = candle.VolumeProfileInfo.PriceLevels.Select(level => level.SellVolume).Sum();
                    var TotalVolume = BuyVolume + SellVolume;

                }

Но очень за мудрили и спрятали.[biggrin]
Thanks: whitebar devruss methyst

devruss

Avatar
Date: 3/25/2014
Reply


Иван З.
Короче, скажу так, зря мы на S# наезжаем, и умничаем. Все есть и все работает. Приношу свои извинения. [blush]
Кто не верит вот код для проверки

Code
                if (candle.State == CandleStates.Finished)
                {
                    var Volume = candle.TotalVolume;
                    var BuyVolume = candle.VolumeProfileInfo.PriceLevels.Select(level => level.BuyVolume).Sum();
                    var SellVolume = candle.VolumeProfileInfo.PriceLevels.Select(level => level.SellVolume).Sum();
                    var TotalVolume = BuyVolume + SellVolume;

                }

Но очень за мудрили и спрятали.[biggrin]


Иван действительно нашел решение!

Сравнение с CQG
Вывод - картинка действительно правдоподобная. Данные в S# пришли из Гидры, записанные вживую из Финама.
Различия конечно есть, но кто прав сказать сложно, главное, что различия несущественные и профиль объемов один и тот же.
Thanks:

methyst

Avatar
Date: 3/28/2014
Reply


Иван З.

Кто не верит вот код для проверки


Спасибо, работает.
ЗЫ: Код вроде просили, после проверки.

Thanks:
< 1 2 

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

loading
clippy