﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Разделение объема на buy/sell volume</title>
  <id>~/topic/4319/razdelenie-obema-na-buysell-volume/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-08T05:14:10Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=4319" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/30133/</id>
    <title type="text">Иван З.: Кто не верит вот код для проверки Спасибо, работает. ЗЫ: Код вроде просили, после проверки....</title>
    <published>2014-03-28T10:51:06Z</published>
    <updated>2014-03-28T10:51:06Z</updated>
    <author>
      <name>methyst</name>
      <uri>https://stocksharp.com/users/51028/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(30108)" rel="nofollow" target="_blank"&gt;Иван З.&lt;/a&gt;:&lt;/strong&gt;
Кто не верит вот код для проверки&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Спасибо, работает.
ЗЫ: Код вроде просили, после проверки.&lt;/p&gt;
&lt;div class="spoiler"&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;

namespace StockSharp.Algo.Indicators.Misc
{
    using System.Linq;
    using System.ComponentModel;
    using StockSharp.Algo.Candles;

    /// &amp;lt;summary&amp;gt;
    /// Объем свечки.
    /// &amp;lt;/summary&amp;gt;
    [DisplayName(&amp;quot;Дельта&amp;quot;)]
    [Description(&amp;quot;Дельта свечки.&amp;quot;)]
    public class DeltaIndicator: BaseIndicator&amp;lt;decimal&amp;gt;
    {
        /// &amp;lt;summary&amp;gt;
        /// Создать &amp;lt;see cref=&amp;quot;DeltaIndicator&amp;quot;/&amp;gt;.
        /// &amp;lt;/summary&amp;gt;
        public DeltaIndicator()
            : base(typeof(Candle))
        {
            Volume = new VolumeIndicator();
        }

        public VolumeIndicator Volume { get; private set; }
        /// &amp;lt;summary&amp;gt;
        /// Сформирован ли индикатор.
        /// &amp;lt;/summary&amp;gt;
        public override bool IsFormed
        {
            get { return Volume.IsFormed; }
        }

        /// &amp;lt;summary&amp;gt;
        /// Обработать входное значение.
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;input&amp;quot;&amp;gt;Входное значение.&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;Результирующее значение.&amp;lt;/returns&amp;gt;
        protected override decimal OnProcess(IIndicatorValue input)
        {
            var candle = input.GetValue&amp;lt;Candle&amp;gt;();           
            var result = candle.VolumeProfileInfo.PriceLevels.Select(level =&amp;gt; level.BuyVolume - level.SellVolume).Sum();
            return result;
        }
    }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="http://i.gyazo.com/b84b1841255826121371ecbba2f7093b.png" alt="картинка" /&gt;&lt;/p&gt;
&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/30110/</id>
    <title type="text">Иван З.: Короче, скажу так, зря мы на S# наезжаем, и умничаем. Все есть и все работает. Приношу свои...</title>
    <published>2014-03-25T15:54:24Z</published>
    <updated>2014-03-25T15:54:24Z</updated>
    <author>
      <name>devruss</name>
      <uri>https://stocksharp.com/users/50604/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(30108)" rel="nofollow" target="_blank"&gt;Иван З.&lt;/a&gt;:&lt;/strong&gt;
Короче, скажу так, зря мы на S# наезжаем, и умничаем. Все есть и все работает. Приношу свои извинения. [blush]
Кто не верит вот код для проверки&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;            if (candle.State == CandleStates.Finished)
            {
                var Volume = candle.TotalVolume;
                var BuyVolume = candle.VolumeProfileInfo.PriceLevels.Select(level =&amp;gt; level.BuyVolume).Sum();
                var SellVolume = candle.VolumeProfileInfo.PriceLevels.Select(level =&amp;gt; level.SellVolume).Sum();
                var TotalVolume = BuyVolume + SellVolume;

            }
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; Но очень за мудрили и спрятали.[biggrin]

Иван действительно нашел решение!

[Сравнение с CQG](http://gyazo.com/ad430475ee54f7ff7f8bb9b0d5f3fd06)
Вывод - картинка действительно правдоподобная. Данные в S# пришли из Гидры, записанные вживую из Финама.
Различия конечно есть, но кто прав сказать сложно, главное, что различия несущественные и профиль объемов один и тот же.
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/30108/</id>
    <title type="text">Короче, скажу так, зря мы на S# наезжаем, и умничаем. Все есть и все работает. Приношу свои извинени...</title>
    <published>2014-03-25T13:37:20Z</published>
    <updated>2014-03-25T13:37:20Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.com/users/6502/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Короче, скажу так, зря мы на S# наезжаем, и умничаем. Все есть и все работает. Приношу свои извинения. [blush]
Кто не верит вот код для проверки&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;                if (candle.State == CandleStates.Finished)
                {
                    var Volume = candle.TotalVolume;
                    var BuyVolume = candle.VolumeProfileInfo.PriceLevels.Select(level =&amp;gt; level.BuyVolume).Sum();
                    var SellVolume = candle.VolumeProfileInfo.PriceLevels.Select(level =&amp;gt; level.SellVolume).Sum();
                    var TotalVolume = BuyVolume + SellVolume;

                }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Но очень за мудрили и спрятали.[biggrin]&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/30092/</id>
    <title type="text">devruss: Но чтобы сделать такой индикатор, в него надо передавать Далее вопрос как суммировать по вр...</title>
    <published>2014-03-24T02:12:22Z</published>
    <updated>2014-03-24T02:12:22Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.com/users/6502/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(30088)" rel="nofollow" target="_blank"&gt;devruss&lt;/a&gt;:&lt;/strong&gt;
Но чтобы сделать такой индикатор, в него надо передавать &amp;lt;trade.Volume, trade.OrderDirection&amp;gt;
Далее вопрос как суммировать по временному интервалу, чтобы он совпадал с временным интервалом свечки
Способа связать сделки со свечками, походу нет. Простого и надежного способа реализации MarketDelta из свечей тоже нет.
Как вариант:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;В индикатор надо передавать сделки trade&lt;/li&gt;
&lt;li&gt;В индикаторе создать свойства OpenTime и TimeFrame на подобие свечных. OpenTime отправляем в ProcessValues для отрисовки.&lt;/li&gt;
&lt;li&gt;Пока OpenTime &amp;lt; Trade.Time &amp;lt; (OpenTime + TimeFrame) считаем дельту.&lt;/li&gt;
&lt;li&gt;Если((OpenTime + TimeFrame) &amp;lt; Trade.Time) OpenTime=(OpenTime + TimeFrame) начинаем считать дельту для новой свечи.
Конечно это туповатый костыль, но он простой.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(30088)" rel="nofollow" target="_blank"&gt;devruss&lt;/a&gt;:&lt;/strong&gt;
По хорошему, конечно, надо бы добавить TotalBuyVolume и TotalSellVolume - это очень верное предложение.
Михаил, можем внести в очередь разработок доп функций?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Судя по логике S# надо не только TotalBuyVolume и TotalSellVolume но и CloseOrderDirections. Так как candle.CloseVolume это объем последней сделки в свечи, тогда candle.CloseOrderDirections будет направление последней сделки в свечи. Тогда бы вам индикатор совсем просто было бы сделать.&lt;/p&gt;
&lt;p&gt;От сюда вытекает второй вариант решения вашей проблемы, многим сложнее но думаю надежнее. Вам сюда &lt;a href="http://www.stocksharp.com/doc/?topic=html/99da6499-9ac1-4e7e-bcaf-a0c832dce4de.htm"&gt;http://www.stocksharp.com/doc/?topic=html/99da6499-9ac1-4e7e-bcaf-a0c832dce4de.htm&lt;/a&gt; . Создать свой тип свечей с этими свойствами.  Реализации CandleBuilder в S# можно тут посмотреть &lt;a href="http://stocksharp.codeplex.com/SourceControl/latest#Sources/Algo/Candles/Compression/CandleBuilder.cs" rel="nofollow" target="_blank"&gt;http://stocksharp.codeplex.com/SourceControl/latest#Sources/Algo/Candles/Compression/CandleBuilder.cs&lt;/a&gt; . Я своих свечей не делал, это только в теории.[smile]&lt;/p&gt;
&lt;p&gt;Вообще MarketDelta, MarketProfile, VolumeProfile сейчас это модные веяния. S# стоит идти в ногу со временем, и дать возможность пользователям простой способ их реализации.[smile]&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/30088/</id>
    <title type="text">Вся история из Квика записана в Гидре вместе со стаканами Код скорее должен выглядеть так: if (trade...</title>
    <published>2014-03-23T17:43:33Z</published>
    <updated>2014-03-23T17:43:33Z</updated>
    <author>
      <name>devruss</name>
      <uri>https://stocksharp.com/users/50604/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Вся история из Квика записана в Гидре вместе со стаканами&lt;/p&gt;
&lt;p&gt;Код скорее должен выглядеть так:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
if (trade.OrderDirection == OrderDirections.Buy) 
              VolumeAsk += trade.Volume;
else 
              VolumeBid+= trade.Volume

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Но чтобы сделать такой индикатор, в него надо передавать &amp;lt;trade.Volume, trade.OrderDirection&amp;gt;&lt;/p&gt;
&lt;p&gt;Далее вопрос как суммировать по временному интервалу, чтобы он совпадал с временным интервалом свечки&lt;/p&gt;
&lt;p&gt;По хорошему, конечно, надо бы добавить TotalBuyVolume и TotalSellVolume - это очень верное предложение.&lt;/p&gt;
&lt;p&gt;Михаил, можем внести в очередь разработок доп функций?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/30087/</id>
    <title type="text">methyst: devruss, имеется ввиду Volume Breakdown? то как вариант можно сравнивать только тики(как бы...</title>
    <published>2014-03-23T16:16:40Z</published>
    <updated>2014-03-23T17:12:44Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.com/users/6502/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(30085)" rel="nofollow" target="_blank"&gt;methyst&lt;/a&gt;:&lt;/strong&gt;
devruss, имеется ввиду &lt;a href="http://support.marketdelta.com/entries/114238-Volume-Breakdown-Indicator-VB-" rel="nofollow" target="_blank"&gt;Volume Breakdown&lt;/a&gt;?
то как вариант можно сравнивать только тики(как были 1-ые инди от Gomi под NT7 ). нынешнюю цену и прошлую
if (lastprice != 0)
{
if (price &amp;gt; lastprice) delta = volume;
if (price &amp;lt; lastprice) delta = -volume;
}
дальше суммировать эти тики в рамках заданного интервала(1мин например)
totaldelta+=delta;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Неправильных ответов будет процентов 10.&lt;/p&gt;
&lt;p&gt;Если для Квика, то есть у сделки свойство OrderDirection, и Квик его транслирует. Как то так получится.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;var delta = trade.OrderDirection != OrderDirections.Buy ? -trade.Volume : trade.Volume;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;дальше как писалось&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(30085)" rel="nofollow" target="_blank"&gt;methyst&lt;/a&gt;:&lt;/strong&gt;
суммировать эти тики в рамках заданного интервала(1мин например)
totaldelta+=delta;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;С историей другое дело, ее с направлением сделки так просто не найдешь. Надо самому Гидрой с Квика качать. Либо выше описанный methyst вариант, но он ошибки выдает.
Ну и как правило дельта рядом с профилем шагает. Я недавно у свечей такое свойство обнаружил.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;Candle candle = new TimeFrameCandle();
var priceLevels = candle.VolumeProfileInfo.PriceLevels;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Правда когда обнаружил оно не работало, сейчас не знаю, не проверял. Раз уж горизонтальные объемы в свече найти можно, надо и дельту сделать. Лучше два свойства TotalBuyVolume и TotalSellVolume. Ну и для полного счастья в VolumeProfileInfo.PriceLevels эти свойства тоже сделать, только для горизонтальных объемов.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/30086/</id>
    <title type="text">Такой вариант рассматривался, но зачем реализовывать заведомо неточный индикатор, когда силами S# то...</title>
    <published>2014-03-23T16:08:20Z</published>
    <updated>2014-03-23T16:08:20Z</updated>
    <author>
      <name>devruss</name>
      <uri>https://stocksharp.com/users/50604/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Такой вариант рассматривался, но зачем реализовывать заведомо неточный индикатор, когда силами S# точно можно сделать верный Volume Breakdown... тот же CQG справляется с этой задачей великолепно
В твоем примере, неявно подразумевается, что bid/ask spread не может ползти вверх без трейдов - данное предположение допустимо с небольшой натяжкой для ликвидных рынков, но абсолютно неверно для неликвида, либо рынка с больших спредом.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/30085/</id>
    <title type="text">devruss, имеется ввиду Volume Breakdown? то как вариант можно сравнивать только тики(как были 1-ые и...</title>
    <published>2014-03-23T14:45:39Z</published>
    <updated>2014-03-23T14:47:54Z</updated>
    <author>
      <name>methyst</name>
      <uri>https://stocksharp.com/users/51028/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;devruss, имеется ввиду &lt;a href="http://support.marketdelta.com/entries/114238-Volume-Breakdown-Indicator-VB-" rel="nofollow" target="_blank"&gt;Volume Breakdown&lt;/a&gt;?
то как вариант можно сравнивать только тики(как были 1-ые инди от Gomi под NT7 ). нынешнюю цену и прошлую
if (lastprice != 0)
{
if (price &amp;gt; lastprice) delta = volume;
if (price &amp;lt; lastprice) delta = -volume;
}				
дальше суммировать эти тики в рамках заданного интервала(1мин например)					
totaldelta+=delta;&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/30082/</id>
    <title type="text">Изначально задача была следующей: &amp;quot;нужно разделять объем на VolumeAsk, VolumeBid If the buyer has li...</title>
    <published>2014-03-22T21:10:52Z</published>
    <updated>2014-03-22T21:10:52Z</updated>
    <author>
      <name>devruss</name>
      <uri>https://stocksharp.com/users/50604/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Изначально задача была следующей: &amp;quot;нужно разделять объем на VolumeAsk, VolumeBid
If the buyer has lifted the offer, it is counted as VolAsk or volume traded at the ask price. It is a measure of aggressive buyers.
If the seller has hit the bid, it is counted as VolBid or volume traded at the bid price. It is a measure of aggressive sellers.&amp;quot;&lt;/p&gt;
&lt;p&gt;Итак, после 2х месяцев изучения S#, переведу данный вопрос на язык S#:)&lt;/p&gt;
&lt;p&gt;Задача сделать индикатор, который принимает значения (decimal Volume, var Aggressor) а на выходе дает значение decimal. Все индикаторы из S# принимают только значения decimal и все....&lt;/p&gt;
&lt;p&gt;На входе подаются трейды (тиковые данные), из которых берется объем и значение агрессора (сделка прошла либо по биду, либо по офферу), на выходе должна формироваться агрегированное значение индикатора за 1 мин, например.&lt;/p&gt;
&lt;p&gt;Как это сделать?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/29427/</id>
    <title type="text">Михаил, Не стоит делать поспешных выводов насчет моей компетентности Судя по вашему ответу, вы видит...</title>
    <published>2014-02-03T10:54:17Z</published>
    <updated>2014-02-03T10:54:17Z</updated>
    <author>
      <name>devruss</name>
      <uri>https://stocksharp.com/users/50604/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Михаил,&lt;/p&gt;
&lt;p&gt;Не стоит делать поспешных выводов насчет моей компетентности&lt;/p&gt;
&lt;p&gt;Судя по вашему ответу, вы видите данную функциональность впервые.&lt;/p&gt;
&lt;p&gt;Вот ссылка на видео с данной функциональностью &lt;a href="http://www.youtube.com/watch?v=0y4a3h43oO0#t=19" rel="nofollow" target="_blank"&gt;http://www.youtube.com/watch?v=0y4a3h43oO0#t=19&lt;/a&gt;, и pdf с подробным описанием &lt;a href="http://www.cqg.com/docs/TA.pdf" rel="nofollow" target="_blank"&gt;http://www.cqg.com/docs/TA.pdf&lt;/a&gt;&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/29308/</id>
    <title type="text">devruss: Допустим, мы смотрим на 5 минутные свечи. Если мы выведем просто volume - то он покажет, чт...</title>
    <published>2014-01-24T21:45:33Z</published>
    <updated>2014-01-24T21:45:33Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(29307)" rel="nofollow" target="_blank"&gt;devruss&lt;/a&gt;:&lt;/strong&gt;
Допустим, мы смотрим на 5 минутные свечи. Если мы выведем просто volume - то он покажет, что объем был 1000 контрактов, например. Нам надо знать, сколько из этой 1000 были bid volume, а сколько ask volume. Например 800 ask volume, 200 bid volume.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Судя по ответу, вы сами не совсем понимаете физического значения этих чисел. Могу лишь предположить, что вам нужно направление сделки.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/29307/</id>
    <title type="text">Допустим, мы смотрим на 5 минутные свечи. Если мы выведем просто volume - то он покажет, что объем б...</title>
    <published>2014-01-24T19:54:41Z</published>
    <updated>2014-01-24T20:00:08Z</updated>
    <author>
      <name>devruss</name>
      <uri>https://stocksharp.com/users/50604/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Допустим, мы смотрим на 5 минутные свечи. Если мы выведем просто volume - то он покажет, что объем был 1000 контрактов, например. Нам надо знать, сколько из этой 1000 были bid volume, а сколько ask volume. Например 800 ask volume, 200 bid volume.&lt;/p&gt;
&lt;p&gt;Что-то вроде этого &lt;img src="http://www.screencast.com/t/gzRVfHlaV" alt=" " /&gt;&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/29305/</id>
    <title type="text">devruss: Итак, я знаю, что CQG на русский рынок дает не только общий проторгованный объем, но и разб...</title>
    <published>2014-01-24T18:09:34Z</published>
    <updated>2014-01-24T18:09:56Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(29304)" rel="nofollow" target="_blank"&gt;devruss&lt;/a&gt;:&lt;/strong&gt;
Итак, я знаю, что CQG на русский рынок дает не только общий проторгованный объем, но и разбивку на buy volume (объем, прошедний по offer) и на sell volume (объем, прошедший по bid). Ворос, можно ли через Quik получить такую статистику (думаю, что нет), и вопрос можно ли realtime обрабатывать тиковые данные так, чтобы делить объем на buy/sell volume.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Смотря что имеет ввиду под проторгованным объемом? Если имеется ввиду агрессор, то это Trade.OrderDirection. А если имеет ввиду именно сколько по рынку ударяли раз, то это можно в теории посмотреть через стаканы + тики. Но точнее только в ОЛ.&lt;/p&gt;
&lt;p&gt;Российский рынок более открыт на данные, чем американский. И на нем можно получить значительно больше информации, чем на америке.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/29304/</id>
    <title type="text">Добрый вечер, Не знаю даже в какую ветку запостить данный вопрос, но он относится и к S#, и к обрабо...</title>
    <published>2014-01-24T17:48:47Z</published>
    <updated>2014-01-24T17:48:47Z</updated>
    <author>
      <name>devruss</name>
      <uri>https://stocksharp.com/users/50604/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Добрый вечер,&lt;/p&gt;
&lt;p&gt;Не знаю даже в какую ветку запостить данный вопрос, но он относится и к S#, и к обработке исходных данных от брокера.&lt;/p&gt;
&lt;p&gt;Итак, я знаю, что CQG на русский рынок дает не только общий проторгованный объем, но и разбивку на buy volume (объем, прошедний по offer) и на sell volume (объем, прошедший по bid). Ворос, можно ли через Quik получить такую статистику (думаю, что нет), и вопрос можно ли realtime обрабатывать тиковые данные так, чтобы делить объем на buy/sell volume.&lt;/p&gt;
&lt;p&gt;В теории, если мы имеем snapshots стаканов и тиковые данные, а также мы знаем, что на русском рынке нет crossed trades (либо OTC reported trades), то любой объем на ленте проходит либо через bid, либо через offer, а значит мы можем видеть через изменение DOM snapshot (изменение состояния стакана) после каждой сделки какой это был объем.&lt;/p&gt;
&lt;p&gt;Как минимум это можно было бы закодить для истории и сравнить с данными CQG.&lt;/p&gt;
&lt;p&gt;Если такое в принципе возможно, то было бы супер услышать от команды stocksharp как это можно было бы реализовать.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>