﻿<?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-06-14T11:29:32Z</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;blockquote&gt;
&lt;p&gt;И да, LINQ медленный.
А что быстрое? Что посоветуете?&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/13660/</id>
    <title type="text">profts: В стратегии на основе события появления новой сделки происходит расчет показателя. для расче...</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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(13655)" rel="nofollow" target="_blank"&gt;profts&lt;/a&gt;:&lt;/strong&gt;
В стратегии на основе события появления новой сделки происходит расчет показателя.
для расчета делается запрос вроде этого :&lt;/p&gt;
&lt;p&gt;var sum__riz1_5 = this.Trader.Trades.Where(p =&amp;gt; p.Security == base.Security  &amp;amp;&amp;amp;
p.Time &amp;gt; DateTime.Now.AddMinutes(-5)).Sum(tr =&amp;gt; tr.Volume);&lt;/p&gt;
&lt;p&gt;пока кол-во сделок небольшое - скорость запроса приличная, но к обеду, когда кол-во сделок по ризу больше 500000 - значительно падает. да и различия скорости вычислений в разное время дня очень не нравится.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;никак не могу сообразить - как сделать запрос к примеру, только по сделкам, поступившим за последние n минут.&lt;/li&gt;
&lt;li&gt;если не 1), то как периодически чистить Trader.Trades и оставлять только сделки за последние n минут.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;По событию появления новых сделок сохраняйте их в отдельную коллекцию и обрабатывайте её.
Те сделки, которые выходят за 5 минут - чистите.&lt;/p&gt;
&lt;p&gt;Вариант 2 - стройте свечки 5-минутные и берите объём.&lt;/p&gt;
&lt;p&gt;И да, LINQ медленный.&lt;/p&gt;
</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;p&gt;В стратегии на основе события появления новой сделки происходит расчет показателя.
для расчета делается запрос вроде этого :&lt;/p&gt;
&lt;p&gt;var sum__riz1_5 = this.Trader.Trades.Where(p =&amp;gt; p.Security == base.Security  &amp;amp;&amp;amp;
p.Time &amp;gt; DateTime.Now.AddMinutes(-5)).Sum(tr =&amp;gt; tr.Volume);&lt;/p&gt;
&lt;p&gt;пока кол-во сделок небольшое - скорость запроса приличная, но к обеду, когда кол-во сделок по ризу больше 500000 - значительно падает. да и различия скорости вычислений в разное время дня очень не нравится.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;никак не могу сообразить - как сделать запрос к примеру, только по сделкам, поступившим за последние n минут.&lt;/li&gt;
&lt;li&gt;если не 1), то как периодически чистить Trader.Trades и оставлять только сделки за последние n минут.&lt;/li&gt;
&lt;/ol&gt;
</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">&lt;p&gt;Понятно, что дело в потоках, но перечитав всю теорию по ним,  а также раздел &amp;quot;Пользовательский интерфейс (GUI)&amp;quot; из документации так и не разобрался. видимо все новички сталкиваются с данной проблемой.&lt;/p&gt;
&lt;p&gt;Из документации  - &amp;quot;Основное ограничение визуального API под Windows состоит в том, что нельзя обращаться из другого потока к элементам окна.&amp;quot;
далее имеем следующий код:&lt;/p&gt;
&lt;p&gt;this.Trader.NewTrades += trades =&amp;gt;
{
middle = this.Trader.Trades.Where(p =&amp;gt; p.Security == _RIZ1).GetAveragePrice());
this.GuiAsync(() =&amp;gt; this.mid_price.Text = middle.ToString();
};&lt;/p&gt;
&lt;p&gt;Насколько я понял, для события появления новой сделки создается новый поток, поэтому результат вычислений не выводится в текстбокс. Т.е. нужно исправить на&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;                           middle = this.Trader.Trades.Where(p =&amp;gt; p.Security == _RIZ1).GetAveragePrice());
                           this.GuiAsync(() =&amp;gt; this.mid_price.Text = middle.ToString();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Все работает!&lt;/p&gt;
&lt;p&gt;Но я никак не могу понять почему не хочет работать такой вариант:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;                           this.GuiAsync(() =&amp;gt; middle = this.Trader.Trades.Where(p =&amp;gt; p.Security == _RIZ1).GetAveragePrice());
                           this.GuiAsync(() =&amp;gt; this.mid_price.Text = middle.ToString();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;И еще такой вопрос... Если изначально использовать шлюз GuiTrader&lt;T&gt;, данная проблема отпадает?&lt;/p&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">&lt;p&gt;Спасибо, разобрался... немного не так оператор &amp;amp;&amp;amp; использовал (&lt;/p&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/13158/</id>
    <title type="text">profts: сделал следующий запрос: &amp;quot;this.Trader.NewTrades += trades =&amp;gt; { this.GuiAsync(() =&amp;gt; middle = ...</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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(13155)" rel="nofollow" target="_blank"&gt;profts&lt;/a&gt;:&lt;/strong&gt;
сделал следующий запрос:&lt;/p&gt;
&lt;p&gt;&amp;quot;this.Trader.NewTrades += trades =&amp;gt;
{
this.GuiAsync(() =&amp;gt; middle = this.Trader.Trades.Where(p =&amp;gt; p.Security == _RIZ1).GetAveragePrice());
};&amp;quot;&lt;/p&gt;
&lt;p&gt;а вот дальше зашел в тупик... как в него включить выборку по времени и направлению сделки?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Вы фильтруете сделки по инструменту, туда же добавить условия для времени и направления&lt;/p&gt;
&lt;p&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)&lt;/p&gt;
</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;p&gt;сделал следующий запрос:&lt;/p&gt;
&lt;p&gt;&amp;quot;this.Trader.NewTrades += trades =&amp;gt;
{
this.GuiAsync(() =&amp;gt; middle = this.Trader.Trades.Where(p =&amp;gt; p.Security == _RIZ1).GetAveragePrice());
};&amp;quot;&lt;/p&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/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">&lt;p&gt;помогите начинающему в C# ))&lt;/p&gt;
&lt;p&gt;как правильнее будет построить запрос из ITrader.Trades...
к примеру следующего типа: middle = средняя цена сделки, где инструмент RIZ1, направление buy, за последние 10 мин.&lt;/p&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">profts: т.е. я могу брать информацию по сделкам из 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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(12990)" rel="nofollow" target="_blank"&gt;profts&lt;/a&gt;:&lt;/strong&gt;
т.е. я могу брать информацию по сделкам из ITrader.Trades, производить анализ, а результаты анализа уже сохранять либо в отдельный файл или в БД?  и как понимаю при каждом закрытии приложения память обнуляется и при следующем запуске ITrader.Trades заново получает данные из квика?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ITrader.Trades хранит только данные за текущую сессию
вы можете вообще сделать враппер над Trade и хранить нужную вам информацию вместе со сделками.
В общем C# позволяет всё что приходит на ум и многими способами :)&lt;/p&gt;
</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">&lt;p&gt;т.е. я могу брать информацию по сделкам из ITrader.Trades, производить анализ, а результаты анализа уже сохранять либо в отдельный файл или в БД?  и как понимаю при каждом закрытии приложения память обнуляется и при следующем запуске ITrader.Trades заново получает данные из квика?&lt;/p&gt;
</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">&lt;p&gt;Если честно,я перечитал всю документацию и в голове путанница... работая с Access была понятная цепочка: Quik - Access(по ODBC), анализ поступаемых данных и сохранение результатов вычислений в отдельную таблицу, отправка сделок в Quik.  а тут никак не могу для себя выработать подобную цепочку.
если sqlite, то с помощью чего производить экспорт Всех сделок в реальном времени и их обработки? стратегия не скальперская, но достаточно часто генерирует сделки, т.е. требуется постоянно производить анализ тиковых сделок за последние минут 10 торгов. Гидра, StockSharp.Algo.Storages или S# предоставляет другие способы?&lt;/p&gt;
&lt;p&gt;из документации (самое начало) - &amp;quot;Для стратегий, которым необходима информация о стакане по инструменту, в S# предусмотрен метод ITrader.GetMarketDepth(Security). Данный метод возвращает MarketDepth, который позволяет получить группированно по типу котировки (биды и оффера), а так же удобную работу с лучшими котировками и спредом.&amp;quot;...     в каком виде и где хранятся эти данные или данный метод просто &amp;quot;достает&amp;quot; информацию из стакана, но не сохраняет ее? аналогично и с примерами экспорта таблиц по DDE...&lt;/p&gt;
</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;p&gt;всё хранится в памяти.
все сделки - ITrader.Trades
стакан - MarketDepth&lt;/p&gt;
&lt;p&gt;Далее вы вольны поступать с ним как душе заблагорассудится. если необходимо сохранять историю в какой-то базе данных, то используйте, к примеру sqlite.&lt;/p&gt;
</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">&lt;p&gt;Sqlite наверное если нужно хранить за несколько дней&lt;/p&gt;
</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">&lt;p&gt;Только начинаю разбираться с S#. Сразу возник вопрос - перечитал весь форум, ответа не нашел.
Для стратегии нужно сохранять информацию из таблицы всех сделок, на основе нее производить определенные вычисления, результаты которых также необходимо сохранять в какой-то файл или таблицу, для дальнейшего их анализа и генерирования торговых сигналов. Раньше все было реализовано в Access.
Вопрос в следующем - какой способ хранения информации  более предпочтительней? И с точки зрения добавления новых данных и с точки зрения доступа и работы с ними. В документации к S# этому вопросу уделено очень мало. И Насколько понимаю StockSharp.Algo.Storages позволяет хранить только историю маркет данных, но не сохранять результаты вычисления над ними.
помогите разобраться...&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>