﻿<?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">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-06-15T03:04:52Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=4163" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/28537/</id>
    <title type="text">vk37: Михаил Сухов: Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на п...</title>
    <published>2013-11-29T08:30:41Z</published>
    <updated>2016-08-16T00:15:46Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(28453)" rel="nofollow" target="_blank"&gt;vk37&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(28345)" rel="nofollow" target="_blank"&gt;Михаил Сухов&lt;/a&gt;:&lt;/strong&gt;
Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC - это комбинация L1 и L1Msg.SC.Time брать из  L1Msg.LocalTimeStamp?Ответ: &lt;a href="http://stocksharp.com/posts/m/28536/"&gt;http://stocksharp.com/posts/m/28536/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28533/</id>
    <title type="text">Михаил Сухов: Я выбираю &amp;quot;Помощь зала&amp;quot; )) Ну в общем, этот код возвращает большое количество Level1Ch...</title>
    <published>2013-11-29T07:58:37Z</published>
    <updated>2013-11-29T07:58:37Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(28508)" rel="nofollow" target="_blank"&gt;Михаил Сухов&lt;/a&gt;:&lt;/strong&gt;
Я выбираю &amp;quot;Помощь зала&amp;quot; )) Ну в общем, этот код возвращает большое количество Level1ChangeMessage у которого в коллекции Changes отсутствуют элементы.```csharp
readonly HashSet&lt;Level1Fields&gt; _level1Fields = new HashSet&lt;Level1Fields&gt;(new[]
{
Level1Fields.AsksCount,
Level1Fields.AsksVolume,
Level1Fields.BidsCount,
Level1Fields.BidsVolume,
Level1Fields.HistoricalVolatility,
Level1Fields.ImpliedVolatility,
Level1Fields.MarginBuy,
Level1Fields.MarginSell,
Level1Fields.StepPrice,
Level1Fields.PriceStep,
Level1Fields.OpenInterest,
});&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;    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;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28508/</id>
    <title type="text">vk37: Михаил Сухов: Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)...</title>
    <published>2013-11-28T17:30:07Z</published>
    <updated>2013-11-28T17:30:07Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(28476)" rel="nofollow" target="_blank"&gt;vk37&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(28474)" rel="nofollow" target="_blank"&gt;Михаил Сухов&lt;/a&gt;:&lt;/strong&gt;
Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)```csharp
!changeMessage.Changes.Any()&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;
Я выбираю &amp;quot;Помощь зала&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28476/</id>
    <title type="text">Михаил Сухов: Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)```csh...</title>
    <published>2013-11-28T06:30:32Z</published>
    <updated>2013-11-28T06:30:32Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(28474)" rel="nofollow" target="_blank"&gt;Михаил Сухов&lt;/a&gt;:&lt;/strong&gt;
Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)```csharp
!changeMessage.Changes.Any()&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28474/</id>
    <title type="text">vk37: Кстати при вызове 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.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(28455)" rel="nofollow" target="_blank"&gt;vk37&lt;/a&gt;:&lt;/strong&gt;
Кстати при вызове security.GetNewChanges приходит огромное количество Level1ChangeMessage с отсутствующими изменениями.&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.ru/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.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Кстати при вызове security.GetNewChanges приходит огромное количество Level1ChangeMessage с отсутствующими изменениями.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28453/</id>
    <title type="text">Михаил Сухов: Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоко...</title>
    <published>2013-11-27T07:36:23Z</published>
    <updated>2013-11-27T07:36:23Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(28345)" rel="nofollow" target="_blank"&gt;Михаил Сухов&lt;/a&gt;:&lt;/strong&gt;
Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC - это комбинация L1 и L1Msg.SC.Time брать из  L1Msg.LocalTimeStamp?&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28347/</id>
    <title type="text">Михаил Сухов: Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоко...</title>
    <published>2013-11-21T07:05:54Z</published>
    <updated>2013-11-21T07:05:54Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(28345)" rel="nofollow" target="_blank"&gt;Михаил Сухов&lt;/a&gt;:&lt;/strong&gt;
Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC - это комбинация L1 и L1Msg.Тогда получается как-то так:```csharp
var messagesBySecurity =
from c in messagesFromQueue
group c by c.SecurityId
into g
select g;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;            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;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;Или есть способ проще?
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28345/</id>
    <title type="text">vk37: Работаю над закачкой маркет данных (свой аналог Гидры). Плаза коннектор. Попробовал перевести ...</title>
    <published>2013-11-20T22:49:12Z</published>
    <updated>2013-11-20T22:49:12Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(28344)" rel="nofollow" target="_blank"&gt;vk37&lt;/a&gt;:&lt;/strong&gt;
Работаю над закачкой маркет данных (свой аналог Гидры). Плаза коннектор. Попробовал перевести закачку SecurityChanges на Level1Change.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC - это комбинация L1 и L1Msg.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Работаю над закачкой маркет данных (свой аналог Гидры). Плаза коннектор. Попробовал перевести закачку SecurityChanges на Level1Change. Получаю данные так: ```csharp
readonly HashSet&lt;Level1Fields&gt; _level1Fields = new HashSet&lt;Level1Fields&gt;(new[]
{
Level1Fields.AsksCount,
Level1Fields.AsksVolume,
Level1Fields.BidsCount,
Level1Fields.BidsVolume,
Level1Fields.HistoricalVolatility,
Level1Fields.ImpliedVolatility,
Level1Fields.MarginBuy,
Level1Fields.MarginSell,
Level1Fields.StepPrice,
Level1Fields.PriceStep,
Level1Fields.OpenInterest,
});&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    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;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;Сохраняю данные так: &lt;/code&gt;csharp
var level1ChangeMessagesBySecurity =
from c in level1ChangeMessagesFromQueue
group c by c.SecurityId
into g
select g;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;            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;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;При сохранении получаю ошибку: &lt;/code&gt;plain
{&amp;quot;Unable to cast object of type 'Grouping[StockSharp.Messages.SecurityId,StockSharp.Messages.Level1ChangeMessage]' to type 'System.Collections.Generic.IEnumerable`1[StockSharp.Algo.Storages.SecurityChange]'.&amp;quot;}&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-Не"&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Не совсем понятно в API 4.2.1: Level1Change заменит SecurityChange?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>