﻿<?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/2088/hranenie-dannyh/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-17T18:44:15Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=2088" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/13666/</id>
    <title type="text">И да, LINQ медленный. А что быстрое? Что посоветуете?</title>
    <published>2011-11-16T12:10:58Z</published>
    <updated>2011-11-16T12:10:58Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;И да, LINQ медленный.&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.ru/posts/m/13660/</id>
    <title type="text">В стратегии на основе события появления новой сделки происходит расчет показателя. для расчета делае...</title>
    <published>2011-11-16T11:19:22Z</published>
    <updated>2011-11-16T11:19:22Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;profts &lt;a href="https://stocksharp.ru/posts/m/13655/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;В стратегии на основе события появления новой сделки происходит расчет показателя.&lt;br /&gt;для расчета делается запрос вроде этого :&lt;br /&gt;&lt;br /&gt;var sum__riz1_5 = this.Trader.Trades.Where(p =&amp;gt; p.Security == base.Security  &amp;amp;&amp;amp;&lt;br /&gt;                      p.Time &amp;gt; DateTime.Now.AddMinutes(-5)).Sum(tr =&amp;gt; tr.Volume);&lt;br /&gt;&lt;br /&gt;пока кол-во сделок небольшое - скорость запроса приличная, но к обеду, когда кол-во сделок по ризу больше 500000 - значительно падает. да и различия скорости вычислений в разное время дня очень не нравится.&lt;br /&gt;&lt;br /&gt;1) никак не могу сообразить - как сделать запрос к примеру, только по сделкам, поступившим за последние n минут. &lt;br /&gt;2) если не 1), то как периодически чистить Trader.Trades и оставлять только сделки за последние n минут.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;По событию появления новых сделок сохраняйте их в отдельную коллекцию и обрабатывайте её.&lt;br /&gt;Те сделки, которые выходят за 5 минут - чистите.&lt;br /&gt;&lt;br /&gt;Вариант 2 - стройте свечки 5-минутные и берите объём.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;И да, LINQ медленный.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/13655/</id>
    <title type="text">В стратегии на основе события появления новой сделки происходит расчет показателя. для расчета делае...</title>
    <published>2011-11-16T10:55:47Z</published>
    <updated>2011-11-16T11:03:33Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">В стратегии на основе события появления новой сделки происходит расчет показателя.&lt;br /&gt;для расчета делается запрос вроде этого :&lt;br /&gt;&lt;br /&gt;var sum__riz1_5 = this.Trader.Trades.Where(p =&amp;gt; p.Security == base.Security  &amp;amp;&amp;amp;&lt;br /&gt;                      p.Time &amp;gt; DateTime.Now.AddMinutes(-5)).Sum(tr =&amp;gt; tr.Volume);&lt;br /&gt;&lt;br /&gt;пока кол-во сделок небольшое - скорость запроса приличная, но к обеду, когда кол-во сделок по ризу больше 500000 - значительно падает. да и различия скорости вычислений в разное время дня очень не нравится.&lt;br /&gt;&lt;br /&gt;1) никак не могу сообразить - как сделать запрос к примеру, только по сделкам, поступившим за последние n минут. &lt;br /&gt;2) если не 1), то как периодически чистить Trader.Trades и оставлять только сделки за последние n минут.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/13285/</id>
    <title type="text">Понятно, что дело в потоках, но перечитав всю теорию по ним, а также раздел &amp;quot;Пользовательский интерф...</title>
    <published>2011-11-10T09:45:48Z</published>
    <updated>2011-11-10T09:45:48Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Понятно, что дело в потоках, но перечитав всю теорию по ним,  а также раздел &amp;quot;Пользовательский интерфейс (GUI)&amp;quot; из документации так и не разобрался. видимо все новички сталкиваются с данной проблемой.&lt;br /&gt;&lt;br /&gt;Из документации  - &amp;quot;Основное ограничение визуального API под Windows состоит в том, что нельзя обращаться из другого потока к элементам окна.&amp;quot;&lt;br /&gt;далее имеем следующий код: &lt;br /&gt;&lt;br /&gt;this.Trader.NewTrades += trades =&amp;gt;&lt;br /&gt;                           {&lt;br /&gt;                               middle = this.Trader.Trades.Where(p =&amp;gt; p.Security == _RIZ1).GetAveragePrice());&lt;br /&gt;                               this.GuiAsync(() =&amp;gt; this.mid_price.Text = middle.ToString();&lt;br /&gt;                           };&lt;br /&gt;&lt;br /&gt;Насколько я понял, для события появления новой сделки создается новый поток, поэтому результат вычислений не выводится в текстбокс. Т.е. нужно исправить на   &lt;br /&gt;&lt;br /&gt;                               middle = this.Trader.Trades.Where(p =&amp;gt; p.Security == _RIZ1).GetAveragePrice());&lt;br /&gt;                               this.GuiAsync(() =&amp;gt; this.mid_price.Text = middle.ToString();&lt;br /&gt;Все работает!&lt;br /&gt;&lt;br /&gt;Но я никак не могу понять почему не хочет работать такой вариант: &lt;br /&gt;&lt;br /&gt;                               this.GuiAsync(() =&amp;gt; middle = this.Trader.Trades.Where(p =&amp;gt; p.Security == _RIZ1).GetAveragePrice());&lt;br /&gt;                               this.GuiAsync(() =&amp;gt; this.mid_price.Text = middle.ToString();&lt;br /&gt;&lt;br /&gt;И еще такой вопрос... Если изначально использовать шлюз GuiTrader&amp;lt;T&amp;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.ru/posts/m/13197/</id>
    <title type="text">Спасибо, разобрался... немного не так оператор &amp;amp;&amp;amp; использовал ( запускаю, все работает, показывает р...</title>
    <published>2011-11-09T14:45:42Z</published>
    <updated>2011-11-09T14:45:42Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Спасибо, разобрался... немного не так оператор &amp;amp;&amp;amp; использовал (&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.ru/posts/m/13158/</id>
    <title type="text">сделал следующий запрос: &amp;quot;this.Trader.NewTrades += trades =&amp;gt; { this.GuiAsync(() =&amp;gt; middle = this.Tra...</title>
    <published>2011-11-08T19:52:54Z</published>
    <updated>2011-11-08T19:52:54Z</updated>
    <author>
      <name>Sergey Masyura</name>
      <uri>https://stocksharp.ru/users/701/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;profts &lt;a href="https://stocksharp.ru/posts/m/13155/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;сделал следующий запрос:&lt;br /&gt;&lt;br /&gt; &amp;quot;this.Trader.NewTrades += trades =&amp;gt;&lt;br /&gt;                           {&lt;br /&gt;                               this.GuiAsync(() =&amp;gt; middle = this.Trader.Trades.Where(p =&amp;gt; p.Security == _RIZ1).GetAveragePrice());&lt;br /&gt;                           };&amp;quot;&lt;br /&gt;&lt;br /&gt;а вот дальше зашел в тупик... как в него включить выборку по времени и направлению сделки? &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Вы фильтруете сделки по инструменту, туда же добавить условия для времени и направления&lt;br /&gt;&lt;br /&gt;Where(p =&amp;gt; p.Security == _RIZ1 &amp;amp;&amp;amp; p.Direction == OrdersDirections.Buy &amp;amp;&amp;amp; p.Time &amp;gt; time)</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/13155/</id>
    <title type="text">сделал следующий запрос: &amp;quot;this.Trader.NewTrades += trades =&amp;gt; { this.GuiAsync(() =&amp;gt; middle = this.Tra...</title>
    <published>2011-11-08T18:49:45Z</published>
    <updated>2011-11-08T18:49:45Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">сделал следующий запрос:&lt;br /&gt;&lt;br /&gt; &amp;quot;this.Trader.NewTrades += trades =&amp;gt;&lt;br /&gt;                           {&lt;br /&gt;                               this.GuiAsync(() =&amp;gt; middle = this.Trader.Trades.Where(p =&amp;gt; p.Security == _RIZ1).GetAveragePrice());&lt;br /&gt;                           };&amp;quot;&lt;br /&gt;&lt;br /&gt;а вот дальше зашел в тупик... как в него включить выборку по времени и направлению сделки? </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/13142/</id>
    <title type="text">помогите начинающему в C# )) как правильнее будет построить запрос из ITrader.Trades... к примеру сл...</title>
    <published>2011-11-08T14:25:21Z</published>
    <updated>2011-11-08T14:25:21Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">помогите начинающему в C# ))&lt;br /&gt;&lt;br /&gt;как правильнее будет построить запрос из ITrader.Trades... &lt;br /&gt;к примеру следующего типа: middle = средняя цена сделки, где инструмент RIZ1, направление buy, за последние 10 мин. &lt;br /&gt;&lt;br /&gt; </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/12991/</id>
    <title type="text">т.е. я могу брать информацию по сделкам из ITrader.Trades, производить анализ, а результаты анализа ...</title>
    <published>2011-11-04T12:13:44Z</published>
    <updated>2011-11-04T12:13:44Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;profts &lt;a href="https://stocksharp.ru/posts/m/12990/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;т.е. я могу брать информацию по сделкам из ITrader.Trades, производить анализ, а результаты анализа уже сохранять либо в отдельный файл или в БД?  и как понимаю при каждом закрытии приложения память обнуляется и при следующем запуске ITrader.Trades заново получает данные из квика?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ITrader.Trades хранит только данные за текущую сессию&lt;br /&gt;вы можете вообще сделать враппер над Trade и хранить нужную вам информацию вместе со сделками.&lt;br /&gt;В общем C# позволяет всё что приходит на ум и многими способами :)</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/12990/</id>
    <title type="text">т.е. я могу брать информацию по сделкам из ITrader.Trades, производить анализ, а результаты анализа ...</title>
    <published>2011-11-04T12:02:08Z</published>
    <updated>2011-11-04T12:02:08Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">т.е. я могу брать информацию по сделкам из ITrader.Trades, производить анализ, а результаты анализа уже сохранять либо в отдельный файл или в БД?  и как понимаю при каждом закрытии приложения память обнуляется и при следующем запуске ITrader.Trades заново получает данные из квика?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/12987/</id>
    <title type="text">Если честно,я перечитал всю документацию и в голове путанница... работая с Access была понятная цепо...</title>
    <published>2011-11-04T11:36:28Z</published>
    <updated>2011-11-04T11:57:10Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Если честно,я перечитал всю документацию и в голове путанница... работая с Access была понятная цепочка: Quik - Access(по ODBC), анализ поступаемых данных и сохранение результатов вычислений в отдельную таблицу, отправка сделок в Quik.  а тут никак не могу для себя выработать подобную цепочку. &lt;br /&gt;если sqlite, то с помощью чего производить экспорт Всех сделок в реальном времени и их обработки? стратегия не скальперская, но достаточно часто генерирует сделки, т.е. требуется постоянно производить анализ тиковых сделок за последние минут 10 торгов. Гидра, StockSharp.Algo.Storages или S# предоставляет другие способы?&lt;br /&gt;&lt;br /&gt;из документации (самое начало) - &amp;quot;Для стратегий, которым необходима информация о стакане по инструменту, в S# предусмотрен метод ITrader.GetMarketDepth(Security). Данный метод возвращает MarketDepth, который позволяет получить группированно по типу котировки (биды и оффера), а так же удобную работу с лучшими котировками и спредом.&amp;quot;...     в каком виде и где хранятся эти данные или данный метод просто &amp;quot;достает&amp;quot; информацию из стакана, но не сохраняет ее? аналогично и с примерами экспорта таблиц по DDE...</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/12988/</id>
    <title type="text">всё хранится в памяти. все сделки - ITrader.Trades стакан - MarketDepth Далее вы вольны поступать с ...</title>
    <published>2011-11-04T11:56:50Z</published>
    <updated>2011-11-04T11:56:50Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">всё хранится в памяти.&lt;br /&gt;все сделки - ITrader.Trades&lt;br /&gt;стакан - MarketDepth&lt;br /&gt;&lt;br /&gt;Далее вы вольны поступать с ним как душе заблагорассудится. если необходимо сохранять историю в какой-то базе данных, то используйте, к примеру sqlite.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/12986/</id>
    <title type="text">Sqlite наверное если нужно хранить за несколько дней</title>
    <published>2011-11-04T11:07:38Z</published>
    <updated>2011-11-04T11:07:38Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Sqlite наверное если нужно хранить за несколько дней</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/12984/</id>
    <title type="text">Только начинаю разбираться с S#. Сразу возник вопрос - перечитал весь форум, ответа не нашел. Для ст...</title>
    <published>2011-11-04T10:59:24Z</published>
    <updated>2011-11-04T10:59:24Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Только начинаю разбираться с S#. Сразу возник вопрос - перечитал весь форум, ответа не нашел.&lt;br /&gt;Для стратегии нужно сохранять информацию из таблицы всех сделок, на основе нее производить определенные вычисления, результаты которых также необходимо сохранять в какой-то файл или таблицу, для дальнейшего их анализа и генерирования торговых сигналов. Раньше все было реализовано в Access. &lt;br /&gt;Вопрос в следующем - какой способ хранения информации  более предпочтительней? И с точки зрения добавления новых данных и с точки зрения доступа и работы с ними. В документации к S# этому вопросу уделено очень мало. И Насколько понимаю StockSharp.Algo.Storages позволяет хранить только историю маркет данных, но не сохранять результаты вычисления над ними. &lt;br /&gt;помогите разобраться... </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>