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


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

Не знаю даже в какую ветку запостить данный вопрос, но он относится и к 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 как это можно было бы реализовать.

Теги:


Спасибо:


< 1 2 
Иван З.

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


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

Код
                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]
Спасибо: whitebar devruss methyst

devruss

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


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

Код
                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# пришли из Гидры, записанные вживую из Финама.
Различия конечно есть, но кто прав сказать сложно, главное, что различия несущественные и профиль объемов один и тот же.
Спасибо:

methyst

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


Иван З. Перейти

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


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

Спасибо:
< 1 2 

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

loading
clippy