﻿<?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">Level1Change в API 4.2.1</title>
  <id>~/topic/4163/level1change-v-api-4_2_1/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-24T16:59:36Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=4163" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/28537/</id>
    <title type="text">Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC ...</title>
    <published>2013-11-29T08:30:41Z</published>
    <updated>2016-08-16T00:15:46Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.com/users/6296/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;vk37 &lt;a href="https://stocksharp.com/posts/m/28453/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Михаил Сухов &lt;a href="https://stocksharp.com/posts/m/28345/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC - это комбинация L1 и L1Msg.&lt;/div&gt;&lt;/div&gt;SC.Time брать из  L1Msg.LocalTimeStamp?&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;Ответ: &lt;a href="http://stocksharp.com/posts/m/28536/
" title="http://stocksharp.com/posts/m/28536/
"&gt;http://stocksharp.com/posts/m/28536/
&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28533/</id>
    <title type="text">Я выбираю &amp;quot;Помощь зала&amp;quot; )) Ну в общем, этот код возвращает большое количество Level1ChangeMessage у ...</title>
    <published>2013-11-29T07:58:37Z</published>
    <updated>2013-11-29T07:58:37Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.com/users/6296/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Михаил Сухов &lt;a href="https://stocksharp.com/posts/m/28508/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Я выбираю &amp;quot;Помощь зала&amp;quot;&lt;/div&gt;&lt;/div&gt; )) Ну в общем, этот код возвращает большое количество Level1ChangeMessage у которого в коллекции Changes отсутствуют элементы.&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
        readonly HashSet&amp;lt;Level1Fields&amp;gt; _level1Fields = new HashSet&amp;lt;Level1Fields&amp;gt;(new[]
            {
                Level1Fields.AsksCount,
                Level1Fields.AsksVolume,
                Level1Fields.BidsCount,
                Level1Fields.BidsVolume,
                Level1Fields.HistoricalVolatility,
                Level1Fields.ImpliedVolatility,
                Level1Fields.MarginBuy,
                Level1Fields.MarginSell,
                Level1Fields.StepPrice,
                Level1Fields.PriceStep,
                Level1Fields.OpenInterest,
            });

        private void OnSecuritiesChanged(IEnumerable&amp;lt;Security&amp;gt; securities)
        {
            foreach (var security in securities)
            {
                var changeMessage = security.GetNewChanges(_level1Fields);

                if (!changeMessage.Changes.Any())
                    continue;
            }
        }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28508/</id>
    <title type="text">Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)!changeMessage.Chang...</title>
    <published>2013-11-28T17:30:07Z</published>
    <updated>2013-11-28T17:30:07Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;vk37 &lt;a href="https://stocksharp.com/posts/m/28476/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Михаил Сухов &lt;a href="https://stocksharp.com/posts/m/28474/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)&lt;/div&gt;&lt;/div&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
!changeMessage.Changes.Any()&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Я выбираю &amp;quot;Помощь зала&amp;quot;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28476/</id>
    <title type="text">Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)!changeMessage.Chang...</title>
    <published>2013-11-28T06:30:32Z</published>
    <updated>2013-11-28T06:30:32Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.com/users/6296/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Михаил Сухов &lt;a href="https://stocksharp.com/posts/m/28474/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)&lt;/div&gt;&lt;/div&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
!changeMessage.Changes.Any()&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28474/</id>
    <title type="text">Кстати при вызове security.GetNewChanges приходит огромное количество Level1ChangeMessage с отсутств...</title>
    <published>2013-11-28T03:06:41Z</published>
    <updated>2013-11-28T03:06:41Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;vk37 &lt;a href="https://stocksharp.com/posts/m/28455/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Кстати при вызове security.GetNewChanges приходит огромное количество Level1ChangeMessage с отсутствующими изменениями.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28455/</id>
    <title type="text">Кстати при вызове security.GetNewChanges приходит огромное количество Level1ChangeMessage с отсутств...</title>
    <published>2013-11-27T08:30:52Z</published>
    <updated>2013-11-27T08:30:52Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.com/users/6296/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Кстати при вызове security.GetNewChanges приходит огромное количество Level1ChangeMessage с отсутствующими изменениями.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28453/</id>
    <title type="text">Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC ...</title>
    <published>2013-11-27T07:36:23Z</published>
    <updated>2013-11-27T07:36:23Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.com/users/6296/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Михаил Сухов &lt;a href="https://stocksharp.com/posts/m/28345/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC - это комбинация L1 и L1Msg.&lt;/div&gt;&lt;/div&gt;SC.Time брать из  L1Msg.LocalTimeStamp?&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28347/</id>
    <title type="text"> Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC...</title>
    <published>2013-11-21T07:05:54Z</published>
    <updated>2013-11-21T07:05:54Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.com/users/6296/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Михаил Сухов &lt;a href="https://stocksharp.com/posts/m/28345/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;&lt;br /&gt;Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC - это комбинация L1 и L1Msg.&lt;/div&gt;&lt;/div&gt;Тогда получается как-то так:&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
                var messagesBySecurity =
                    from c in messagesFromQueue
                    group c by c.SecurityId
                        into g
                        select g;

                foreach (var messageBySecurity in messagesBySecurity)
                {
                    var security = new Security() {Id = messageBySecurity.Key.Native.ToString()};
                    var securityChangeStorage = _storageRegistry.GetSecurityChangeStorage(security, _defaultDrive);

                    try
                    {
                        var securityChanges = new List&amp;lt;SecurityChange&amp;gt;();

                        foreach (var message in messageBySecurity)
                            foreach (var change in message.Changes)
                                securityChanges.Add(new SecurityChange(security, message.LocalTimeStamp, change.Type, change.Value));

                        securityChangeStorage.Save(securityChanges);
                    }
                    catch (Exception e)
                    {
                        Log.Error(&amp;quot;Ошибка при сохранении изменений инструментов&amp;quot;, e);
                    }
                }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Или есть способ проще?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28345/</id>
    <title type="text">Работаю над закачкой маркет данных (свой аналог Гидры). Плаза коннектор. Попробовал перевести закачк...</title>
    <published>2013-11-20T22:49:12Z</published>
    <updated>2013-11-20T22:49:12Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;vk37 &lt;a href="https://stocksharp.com/posts/m/28344/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Работаю над закачкой маркет данных (свой аналог Гидры). Плаза коннектор. Попробовал перевести закачку SecurityChanges на Level1Change.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC - это комбинация L1 и L1Msg.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28344/</id>
    <title type="text">Работаю над закачкой маркет данных (свой аналог Гидры). Плаза коннектор. Попробовал перевести закачк...</title>
    <published>2013-11-20T21:32:19Z</published>
    <updated>2013-11-20T21:43:40Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.com/users/6296/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Работаю над закачкой маркет данных (свой аналог Гидры). Плаза коннектор. Попробовал перевести закачку SecurityChanges на Level1Change. Получаю данные так: &lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
        readonly HashSet&amp;lt;Level1Fields&amp;gt; _level1Fields = new HashSet&amp;lt;Level1Fields&amp;gt;(new[]
            {
                Level1Fields.AsksCount,
                Level1Fields.AsksVolume,
                Level1Fields.BidsCount,
                Level1Fields.BidsVolume,
                Level1Fields.HistoricalVolatility,
                Level1Fields.ImpliedVolatility,
                Level1Fields.MarginBuy,
                Level1Fields.MarginSell,
                Level1Fields.StepPrice,
                Level1Fields.PriceStep,
                Level1Fields.OpenInterest,
            });

        private void OnSecuritiesChanged(IEnumerable&amp;lt;Security&amp;gt; securities)
        {
            foreach (var security in securities)
            {
                var changeMessage = security.GetNewChanges(_level1Fields);
                _saveManager.Level1ChangeMessages.Enqueue(changeMessage);
            }
        }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;Сохраняю данные так: &lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
                var level1ChangeMessagesBySecurity =
                    from c in level1ChangeMessagesFromQueue
                    group c by c.SecurityId
                        into g
                        select g;

                foreach (var level1ChangeMessageBySecurity in level1ChangeMessagesBySecurity)
                {
                    var level1ChangeStorage = _storageRegistry.GetLevel1ChangeStorage(new Security() { Id = level1ChangeMessageBySecurity.Key.Native.ToString()}, _defaultDrive);
                    try
                    {
                        level1ChangeStorage.Save(level1ChangeMessageBySecurity);
                    }
                    catch (Exception e)
                    {
                        Log.Error(&amp;quot;Ошибка при сохранении изменений инструментов&amp;quot;, e);
                    }
                }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;При сохранении получаю ошибку: &lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:plain"&gt;
{&amp;quot;Unable to cast object of type &amp;#39;Grouping[StockSharp.Messages.SecurityId,StockSharp.Messages.Level1ChangeMessage]&amp;#39; to type &amp;#39;System.Collections.Generic.IEnumerable`1[StockSharp.Algo.Storages.SecurityChange]&amp;#39;.&amp;quot;}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;Не понятно почему идет попытка привести StockSharp.Messages.Level1ChangeMessage к типу StockSharp.Algo.Storages.SecurityChange. Предполагаю это баг.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28342/</id>
    <title type="text">Не совсем понятно в API 4.2.1: Level1Change заменит SecurityChange?</title>
    <published>2013-11-20T21:07:45Z</published>
    <updated>2013-11-20T21:08:02Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.com/users/6296/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Не совсем понятно в API 4.2.1: Level1Change заменит SecurityChange?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>