﻿<?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">Баго-фича при сохранении данных Trade</title>
  <id>~/topic/3160/bago-ficha-pri-sohranenii-dannyh-trade/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-17T15:01:57Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=3160" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/22573/</id>
    <title type="text"> В примере нет самого важного параметра - номера сделки. Что-то я недооценил этот параметр. Его нет ...</title>
    <published>2012-11-15T22:21:47Z</published>
    <updated>2012-11-15T22:21:47Z</updated>
    <author>
      <name>DrChemist</name>
      <uri>https://stocksharp.com/users/6376/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.com/posts/m/22533/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;В примере нет самого важного параметра - номера сделки.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Что-то я недооценил этот параметр.  Его нет потому, что его нет[bored] Т.е. он всегда ноль.&lt;br /&gt;Искусственные сделки я создаю вот таким кодом, который находится в подкрученном HydraQuikTrader.cs:&lt;br /&gt;(QuikStockIndexes  - моя собственная структура, используемая в кастом таблице, откуда я буру данные)&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;

                List&amp;lt;Trade&amp;gt; toTrades = new List&amp;lt;Trade&amp;gt;();
                foreach (QuikStockIndexes si in _idxData)
                {
                    var mySecurLst = _secur.Where(s =&amp;gt; (s.Id == (si.SecurID + &amp;quot;@&amp;quot; + si.ClassID)));
                    if (mySecurLst.Any())
                    {
                        var mySecur = mySecurLst.First();
                        var myTrade = new Trade
                        {
                            Security = mySecur,
                            Price = si.Price, //decimal.Round(si.Price, 4),
                            Volume = 1,
                            Time = si.UpdateTime,
                            Latency = si.Latency,
                            OrderDirection = OrderDirections.Buy
                        };
                        toTrades.Add(myTrade);
                    }
                }

                smTestLog( toTrades);

                if (toTrades.Any())
                    RaiseNewTrades(toTrades);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Для правильного сохранения нужно обязательно определять еще и Id?&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/22533/</id>
    <title type="text"> Хотелось бы понять более четко, действительно ли делается какая-либо отбраковка данных при сохранен...</title>
    <published>2012-11-14T20:57:24Z</published>
    <updated>2012-11-14T20:57:24Z</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;DrChemist &lt;a href="https://stocksharp.com/posts/m/22523/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Хотелось бы понять более четко, действительно ли делается какая-либо отбраковка данных при сохранении, и по каким принципам?&lt;br /&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/22523/</id>
    <title type="text">Проверил на версии 4.1.6 Подтверждаю. Проблема устранена полностью . Данные читаются и восстанавлива...</title>
    <published>2012-11-14T17:25:44Z</published>
    <updated>2012-11-14T17:25:44Z</updated>
    <author>
      <name>DrChemist</name>
      <uri>https://stocksharp.com/users/6376/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Проверил на версии  4.1.6&lt;br /&gt;Подтверждаю. Проблема устранена полностью . Данные читаются и восстанавливаются точно с любым количеством десятичных знаков после запятой в поле Price.&lt;br /&gt;&lt;br /&gt;Для тех, кому это может быть нужно, обращаю внимание, что, по всей видимости, формат записи изменился. Мне не удалось прочитать данные записанные версией 4.1.6 программой, использующей библиотеку 4.1.5&lt;br /&gt;&lt;br /&gt;Однако я обнаружил еще один эффект, с которым хотел бы разобраться.&lt;br /&gt;Дело в том, что я обнаружил, что в хранилище сохраняются не все искусственные сделки, которые я создаю.&lt;br /&gt;Возможно, происходит некоторая фильтрация ( возможно, правильная) или в  _tradesBuffer Гидры или в самом хранилище. &lt;br /&gt;&lt;br /&gt;Дело в том, что данные из кастом таблиц Quik, по всей видимости, приходят с дублированием:&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:plain"&gt;

1. miniSP500&amp;amp;WIDX,20:14:01,2012-11-14 20:14:01.0(00:00:01.9850995),1365.73553345389,buy
2. miniSP500&amp;amp;WIDX,20:14:01,2012-11-14 20:14:01.0(00:00:01.9850995),1365.73553345389,sell
3. miniSP500&amp;amp;WIDX,20:14:02,2012-11-14 20:14:02.0(00:00:00.9850995),1365.73553345389,buy
4. miniSP500&amp;amp;WIDX,20:14:02,2012-11-14 20:14:02.0(00:00:00.9850995),1365.73553345389,sell
5. miniSP500&amp;amp;WIDX,20:14:02,2012-11-14 20:14:02.0(00:00:01.9444995),1365.73704038577,buy
6. miniSP500&amp;amp;WIDX,20:14:02,2012-11-14 20:14:02.0(00:00:01.9454995),1365.73704038577,sell
7. miniSP500&amp;amp;WIDX,20:14:03,2012-11-14 20:14:03.0(00:00:00.9464995),1365.73704038577,buy
8. miniSP500&amp;amp;WIDX,20:14:03,2012-11-14 20:14:03.0(00:00:00.9464995),1365.73704038577,sell
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Время указано по данным из таблицы, в скобках задержка по отношению к компьютерному времени.&lt;br /&gt;&lt;br /&gt;Если посмотреть, например, на строки 2 и 4, 5 и 7, то видно, что они соответствуют строго одному и тому же компьютерному времени,  но задержки как-бы разные.  Все параметры сделки, кроме времени в них идентичны.&lt;br /&gt;&lt;br /&gt;Для каждой строчки была создана соответствующая искусственная сделка,  которая помещалась в _tradesBuffer обычным образом. &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:plain"&gt;

[1]	{2012-11-14 20:14:01 0 1365.73553345389 1}
[2]	{2012-11-14 20:14:01 0 1365.73553345389 1}
[3]	{2012-11-14 20:14:02 0 1365.73553345389 1}
[4]	{2012-11-14 20:14:02 0 1365.73553345389 1}
[7]	{2012-11-14 20:14:03 0 1365.73704038577 1}
[8]	{2012-11-14 20:14:03 0 1365.73704038577 1}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Т.е. сделки, соответствующие строкам 5 и 6 были отфильтрованы (отбракованы?) и не были сохранены.&lt;br /&gt;&lt;br /&gt;Хотелось бы понять более четко, действительно ли делается какая-либо отбраковка данных при сохранении, и по каким принципам?&lt;br /&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/22430/</id>
    <title type="text">Проблема определена. Будет фикс на Кодеплексе. Сейчас хранилище поддерживает цены, не кратные шагу. ...</title>
    <published>2012-11-12T12:06:53Z</published>
    <updated>2012-11-12T12:06:53Z</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;Mikhail Sukhov &lt;a href="https://stocksharp.com/posts/m/22419/" 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;br /&gt;Фикс доступен на кодеплексе. Просьба отписаться о результатах.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/22419/</id>
    <title type="text">Проблема определена. Будет фикс на Кодеплексе. Сейчас хранилище поддерживает цены, не кратные шагу. ...</title>
    <published>2012-11-10T21:26:37Z</published>
    <updated>2012-11-10T21:26:37Z</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/22409/</id>
    <title type="text">Решил описать один неприятный эффект, с которым мне пришлось столкнуться и который, увы, забрал мног...</title>
    <published>2012-11-10T15:50:10Z</published>
    <updated>2012-11-10T15:50:10Z</updated>
    <author>
      <name>DrChemist</name>
      <uri>https://stocksharp.com/users/6376/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Решил описать один неприятный эффект, с которым мне пришлось столкнуться и который, увы, забрал много времени.&lt;br /&gt;&lt;br /&gt;Если Trade.Price содержит &amp;#171;лишние&amp;#187; десятичные цифры после запятой (по всей видимости, цифры большей точности,  чем  Security.MinStepPrice), то при сохранении таких данных в TradeStorage и последующем чтении данные очень сильно искажаются ( более чем на 100%) из-за больших накапливающихся ошибок.&lt;br /&gt;&lt;br /&gt;У меня этот эффект возник при генерации и сохранении искусственных сделок, информацию для которых я брал из альтернативных (кастом) таблиц (мировые индексы, по которым не поступала информация в таблицу всех сделок).&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>