﻿<?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">API 4.2.1.5 ошибки при сохранении стакана</title>
  <id>~/topic/4222/api-4_2_1_5-oshibki-pri-sohranenii-stakana/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-08T04:41:16Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=4222" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/29076/</id>
    <title type="text">Добавил еще такую проверку: if (marketDepth.Asks.Length != marketDepth.Asks.Select(a =&amp;gt; a.Price).Dis...</title>
    <published>2014-01-15T15:45:46Z</published>
    <updated>2014-01-15T15:45: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="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
                if (marketDepth.Asks.Length != marketDepth.Asks.Select(a =&amp;gt; a.Price).Distinct().Count())
                    continue;

                if (marketDepth.Bids.Length != marketDepth.Bids.Select(a =&amp;gt; a.Price).Distinct().Count())
                    continue;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/29075/</id>
    <title type="text">Ошибка из-за того, что в стакане есть котировки с одинаковой ценой. Т.е. например: Asks: 350 340 340...</title>
    <published>2014-01-15T15:36:48Z</published>
    <updated>2014-01-15T15:36:48Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.com/users/6296/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Ошибка из-за того, что в стакане есть котировки с одинаковой ценой. Т.е. например:&lt;br /&gt;Asks:&lt;br /&gt;350&lt;br /&gt;340&lt;br /&gt;340&lt;br /&gt;320&lt;br /&gt;&lt;br /&gt;или &lt;br /&gt;Bids:&lt;br /&gt;&lt;br /&gt;300&lt;br /&gt;280&lt;br /&gt;280&lt;br /&gt;150</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28759/</id>
    <title type="text">Старая добрая ошибка смартком. Цена лучших квот равна. Надо такое фильтровать как в гидре перед сохр...</title>
    <published>2013-12-25T07:13:17Z</published>
    <updated>2013-12-25T07:13:17Z</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/28757/" 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/28748/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Старая добрая ошибка смартком. Цена лучших квот равна. Надо такое фильтровать как в гидре перед сохранением. &lt;/div&gt;&lt;/div&gt;Посмотрел: стоит у меня такая проверка )&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Сделайте еще вот так: &lt;br /&gt;&lt;br /&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 fake = theClone.ToDictionary(q =&amp;gt; q.Price);&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28757/</id>
    <title type="text">Старая добрая ошибка смартком. Цена лучших квот равна. Надо такое фильтровать как в гидре перед сохр...</title>
    <published>2013-12-25T06:28:35Z</published>
    <updated>2013-12-25T06:28:35Z</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/28748/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Старая добрая ошибка смартком. Цена лучших квот равна. Надо такое фильтровать как в гидре перед сохранением. &lt;/div&gt;&lt;/div&gt;Посмотрел: стоит у меня такая проверка )&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
        private void OnMarketDepthsChanged(IEnumerable&amp;lt;MarketDepth&amp;gt; marketDepths)
        {
            foreach (var marketDepth in marketDepths)
            {
                var theClone = marketDepth.Clone();

                if (theClone.Bids.Length == 0 || theClone.Asks.Length == 0)
                    continue;

                if (theClone.BestAsk == null ||  theClone.BestBid == null)
                    continue;
                
                // Эта проверка
                if (theClone.BestAsk.Price &amp;lt;= theClone.BestBid.Price)
                    continue;

                _saveManager.MarketDepths.Enqueue(theClone);
            }
        }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;Под смартком 2.2 такой ошибки не замечал, мой код с тех пор не менялся.&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/28748/</id>
    <title type="text">Старая добрая ошибка смартком. Цена лучших квот равна. Надо такое фильтровать как в гидре перед сохр...</title>
    <published>2013-12-24T11:25:56Z</published>
    <updated>2013-12-24T11:25:56Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Старая добрая ошибка смартком. Цена лучших квот равна. Надо такое фильтровать как в гидре перед сохранением. </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/28747/</id>
    <title type="text">Перед началом основной торговой сессии фортс такие были ошибки около 20 шт. 2013-12-24 09:46:52,688 ...</title>
    <published>2013-12-24T10:18:24Z</published>
    <updated>2013-12-24T10:19:20Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.com/users/6296/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Перед началом основной торговой сессии фортс такие были ошибки около 20 шт.&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:plain"&gt;
2013-12-24 09:46:52,688 [ 7] ERROR - Ошибка при сохранении стаканов
System.ArgumentException: An item with the same key has already been added.
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
   at StockSharp.Algo.TraderHelper.GetDelta(IEnumerable`1 from, IEnumerable`1 to)
   at StockSharp.Algo.TraderHelper.GetDelta(MarketDepth from, MarketDepth to)
   at #=q$U8A663fhd_0nxstRJ5STtHVdvBVtQukA7zl9AibzNGeEEvji2dJooZa8ayjIDhC.#=qSjYXVuN0ckTGw8mrYQriqA==(List`1 #=q2cQNsRhsImEgVXVksZBjSw==, IEnumerable`1 #=qlKCfxei94Vv3UzqvpNz3hA==, #=qPjD4BOv$5BKxe_ttNIce9KX$StN0NyiBwpObU6kch$BMgL6S9sfObFU3GqsEgX1e #=qTFfdcnxupMR9RCen$yyBAg==)
   at #=qvPdOKmEvEXpYUIeZNvfr_znIw80Z0XdYcnKCHvfSPW$53oUCutiMW2z6RXfDAe41ciQl8jAAT5WAqwWdQkoDGQ==.#=qyIZ0I1YeVbWE63bhnA1K1m2wMY4WufT7V_fi6zP$BEiUFK4ZG1$WOQya8xSiCOYZmeScHvX14dkmWXwkWW4x83yElb8cbD$Qj2VhO6A1Tg8=(IEnumerable`1 #=qeNRuCwPbA1MZUv6t_RCB1A==, #=qhGR8S6Wu_SWG1MG6nOa3ZCrPdX2mFvXg_NU1dSJhBRouCHpisXihlhUpXrrFBvL4 #=qNeuAjq1TWLi$Pw_QrW3tyQ==)
   at #=qMr7SOgVDO7e2LOOI0TIpOlcrRD__36oAVUZnLjrXy4f8WChvEhvBrmKrhHWHTTDM.#=qslrI4Dm2UMjXW3BBv90Pwg==(DateTime #=qOA7tKmye8FF6uiZjivgoew==, #=q_8rCYviG8F7vLRinZLvBtg==[] #=qCViIC5A30X4eCFdr$Hf6jw==, Boolean #=qoNs8QO9b8hjaaFLpfZViow==)
   at #=qMr7SOgVDO7e2LOOI0TIpOlcrRD__36oAVUZnLjrXy4f8WChvEhvBrmKrhHWHTTDM.Save(IEnumerable`1 #=q1V7P2EQ7pJv8vVj8c5ImrQ==)
   at AlgoTrading.Hydra.Model.SaveManager.SaveMarketDepths() in d:\Temp\AlgoTrading\Build Process Data\Export\SourceCode\Applications\AlgoTrading.Hydra\Model\SaveManager.cs:line 224&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;Смартком х64 3.0.87</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>