﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Задержка вывода стакана</title>
  <id>~/topic/906/zaderzhka-vyvoda-stakana/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-07T03:59:56Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=906" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/1930/</id>
    <title type="text">А, точно, он в ITrader описан. Спасибо за ответы! </title>
    <published>2010-03-15T10:13:00Z</published>
    <updated>2010-03-15T10:13:00Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.ru/users/26822/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;А, точно, он в ITrader описан. Спасибо за ответы!&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/1929/</id>
    <title type="text">Второе вызывает первое. И больше ни в чем. Я сделал RegisterQuotes, потому что это универсальное наз...</title>
    <published>2010-03-12T18:43:00Z</published>
    <updated>2010-03-12T18:43:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Второе вызывает первое. И больше ни в чем.&lt;/p&gt;
&lt;p&gt;Я сделал RegisterQuotes, потому что это универсальное название, и
механизм регастрации инструмента на получения стакана используется не
только в Квик. А S# разрабатывается как платформо независимая
библиотека.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/1928/</id>
    <title type="text">А в чем разница тогда между StartDde(lkoh) и RegisterQuotes(lkoh)? </title>
    <published>2010-03-12T18:40:00Z</published>
    <updated>2010-03-12T18:40:00Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.ru/users/26822/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;А в чем разница тогда между
StartDde(lkoh) и RegisterQuotes(lkoh)?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/1927/</id>
    <title type="text">trader.QuotesChanged - когда меняется весь стакан (квик шлет кстати целиком каждый раз). MarketDepth...</title>
    <published>2010-03-12T18:31:00Z</published>
    <updated>2010-03-12T18:31:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;trader.QuotesChanged - когда меняется весь стакан (квик шлет кстати
целиком каждый раз). MarketDepth.Changed - когда меняется только одна
строчка. Для квика мне кажется не актуально.&lt;/p&gt;
&lt;p&gt;RegisterQuotes - запускает экспорт ДДЕ по заявкам, тоесть вызывает
StartDde(Security).
GetMarketDepth - это получить то, что пришло под ДДЕ.&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.ru/posts/m/1926/</id>
    <title type="text">Да просто забыл об этом. этот же пункт сначала документации, а на этапе написания вывода стакана об ...</title>
    <published>2010-03-12T18:11:00Z</published>
    <updated>2010-03-12T18:11:00Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.ru/users/26822/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Да просто забыл об этом. этот же пункт сначала документации, а на
этапе написания вывода стакана об этом уже и не помнилось.
так что не &amp;quot;не до конца читаете&amp;quot;, а &amp;quot;не с начала&amp;quot;  :)
попутно возник вопрос.&lt;/p&gt;
&lt;p&gt;как лучше сакан слушать - подписаться на событие trader.QuotesChanged
или получить объект класса MarketDepth, и подписаться на его событие
Changed?
и вопрос 2 - а нафига метод ITrader..::.RegisterQuotes метод, если
есть GetMarketDepth?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/1925/</id>
    <title type="text">Ага, документацию не до конца читаете! </title>
    <published>2010-03-12T18:04:00Z</published>
    <updated>2010-03-12T18:04:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Ага, документацию не до конца читаете!&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/1924/</id>
    <title type="text">Вопрос решился сам собой путем прописывания в info.ini [excel] price-timeout=10 </title>
    <published>2010-03-12T17:41:00Z</published>
    <updated>2010-03-12T17:41:00Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.ru/users/26822/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Вопрос решился сам собой
путем прописывания в info.ini
[excel]
price-timeout=10&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/1923/</id>
    <title type="text">Все правильно. Посмотрю позднее. </title>
    <published>2010-03-12T16:56:00Z</published>
    <updated>2010-03-12T16:56:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Все правильно. Посмотрю позднее.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/1922/</id>
    <title type="text">Может я стакан как то не так получаю? </title>
    <published>2010-03-12T16:34:00Z</published>
    <updated>2010-03-12T16:34:00Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.ru/users/26822/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Может я стакан как то не так получаю?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/1921/</id>
    <title type="text">В консоли то же самое. ощущение что событие возникает не при каждом изменеии стакана, а в какие то п...</title>
    <published>2010-03-12T16:31:00Z</published>
    <updated>2010-03-12T16:31:00Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.ru/users/26822/</uri>
      <email>info@stocksharp.ru</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;trader.StartDde(lkoh);&lt;/p&gt;
&lt;p&gt;trader.QuotesChanged += new
Action&lt;MarketDepth&gt;(trader_QuotesChanged);
waitHandle.WaitOne();&lt;/p&gt;
&lt;p&gt;static void trader_QuotesChanged(MarketDepth obj)
{
if (obj.Security.Code == &amp;quot;LKOH&amp;quot;)
Console.WriteLine(obj.BestBid.Price.ToString());&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.ru/posts/m/1920/</id>
    <title type="text">Хм, щас попробую. я уже думал об этом, просто в консоли неудобно наблюдать... </title>
    <published>2010-03-12T16:19:00Z</published>
    <updated>2010-03-12T16:19:00Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.ru/users/26822/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Хм, щас попробую. я уже думал об этом, просто в консоли неудобно
наблюдать...&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/1919/</id>
    <title type="text">Ага, теперь видно. Смотрите на код: edtStakanBestBid.BeginInvoke(setStakanBid, new object[] { obj.Be...</title>
    <published>2010-03-12T16:13:00Z</published>
    <updated>2010-03-12T16:13:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Ага, теперь видно. Смотрите на код:&lt;/p&gt;
&lt;p&gt;edtStakanBestBid.BeginInvoke(setStakanBid, new
object[] { obj.BestBid.Price.ToString() });&lt;/p&gt;
&lt;p&gt;Он говорит, что обновление поля будет не мгновенно, а поставиться в
очередь с другими windows событиями... Поэтому лучше проверять через
консольное приложение. Там никаких синхронизаций нет. Появилось
событие - вывелось в Console.WriteLine&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/1918/</id>
    <title type="text">Да я уж не стакан отображаю, а просто BestBid вывожу в TextEdit. все равно задержка. Делаю это так (...</title>
    <published>2010-03-12T16:05:00Z</published>
    <updated>2010-03-12T16:05:00Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.ru/users/26822/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Да я уж не стакан отображаю, а просто BestBid вывожу в TextEdit. все
равно задержка.&lt;/p&gt;
&lt;p&gt;Делаю это так (.NET 2.0 стиль)&lt;/p&gt;
&lt;p&gt;internal delegate void SetString(string str);&lt;/p&gt;
&lt;p&gt;private SetString setStakanBid&lt;/p&gt;
&lt;p&gt;public Form1()
{
InitializeComponent();
...
setStakanBid = setStakanBestBid;
}
void setStakanBestBid(string bid)
private void Form1_Load(object sender, EventArgs e)
{
.....
waitHandle.WaitOne();
waitHandle.Close();&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;       trader.SecuritiesChanged += new
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Action&amp;lt;IEnumerable&lt;Security&gt;&amp;gt;(trader_SecuritiesChanged);
trader.QuotesChanged += new
Action&lt;MarketDepth&gt;(trader_QuotesChanged);
}&lt;/p&gt;
&lt;p&gt;void trader_QuotesChanged(MarketDepth obj)
{
if (obj.Security.Code == &amp;quot;LKOH&amp;quot;)
{
if (edtStakanBestBid.InvokeRequired)
edtStakanBestBid.BeginInvoke(setStakanBid, new
object[] { obj.BestBid.Price.ToString() });
}
}&lt;/p&gt;
&lt;p&gt;вроде особых накладных расходов не должно быть, но задержки все равно
наблюдаются.&lt;/p&gt;
&lt;p&gt;а бид/аск из Инстроментов  момент в момент выводятся.&lt;/p&gt;
&lt;p&gt;Хотя ниже я в одной тееме прочитал что юзать MarketDepth
предпочтительнее и быстрее...&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/1917/</id>
    <title type="text">при любом изменении стакана... отображение тоже кушает время. по одному этмоу факту мерять бесполезн...</title>
    <published>2010-03-12T15:48:00Z</published>
    <updated>2010-03-12T15:48:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;при любом изменении стакана... отображение тоже кушает время. по
одному этмоу факту мерять бесполезно (робот то все равно не считывает
визуальные данные). Посмотрите, с какой скоростью вызывается сам
QuotesChanged. Если одновременно, просто оптимизируйте отображение
стакана.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/1916/</id>
    <title type="text">Здравствуйте. Скажите - а стакан выводится в событии ITrader.QuotesChanged с какойто заданной частот...</title>
    <published>2010-03-12T15:13:00Z</published>
    <updated>2010-03-12T15:13:00Z</updated>
    <author>
      <name>Tauler</name>
      <uri>https://stocksharp.ru/users/26822/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Здравствуйте. Скажите - а стакан выводится в событии
ITrader.QuotesChanged с какойто заданной частотой или при любом
изменении стакана? Я спрашиваю потому , что у меня стакан отображается
с небольшой задержкой.на полсекунды отстает от квика. паралельно бид и
аск из таблицы Инструменты появляются в тот же момент.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>