﻿<?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">S# + сторонии controls</title>
  <id>~/topic/3410/s--storonii-controls/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-21T06:37:39Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=3410" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/24750/</id>
    <title type="text">Про таймфреймы я понял, что они должны совпадать. Я вот что-то ну никак не могу разобраться, как име...</title>
    <published>2013-03-23T16:20:35Z</published>
    <updated>2013-03-23T16:20:35Z</updated>
    <author>
      <name>akoz</name>
      <uri>https://stocksharp.ru/users/26817/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Про таймфреймы я понял, что они должны совпадать.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Я вот что-то ну никак не могу разобраться, как имеющиеся свечки сжать по таймфрейму. Например, скачанные минутки сжать в пятиминутки, часовики и т.д., чтобы быстрее длинную историю, например, часовых свечек собрать. Из тиков это нереально, а из свечек можно.&lt;/p&gt;
&lt;p&gt;Как я понял, TimeFrameCandleBuilder из тиков лишь умеет собирать.
Гидра тоже это не делает и тоже лишь умеет собирать из тиков.&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/24277/</id>
    <title type="text">Moadip: Странно. Попробовал подгрузил тики по ри за 3 месяца, из них были сделаны 1мин. В пике, когд...</title>
    <published>2013-02-27T09:18:11Z</published>
    <updated>2013-02-27T09:18:11Z</updated>
    <author>
      <name>vint</name>
      <uri>https://stocksharp.ru/users/26935/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(24273)" rel="nofollow" target="_blank"&gt;Moadip&lt;/a&gt;:&lt;/strong&gt;
Странно. Попробовал подгрузил тики по ри за 3 месяца, из них были сделаны 1мин. В пике, когда подгружались тики и формировались свечки, прога отъедала ~400 мб. Когда все подргузилось и сформировалось - ~ 250мб.
Действительно странно... С учетом того что я собственно ничего не изобретал, взял готовый пример и просто добавил уже упомянутые строки.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
// Добавление в источник свечек TimeFrameCandleBuilder источник данных в виде файлов гидры 
var storageRegistry = new StorageRegistry();
((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = _historyPath;

var cbs = new TradeStorageCandleBuilderSource { StorageRegistry = storageRegistry };

_candleManager.Sources.OfType&amp;lt;TimeFrameCandleBuilder&amp;gt;().Single().Sources.Add(cbs);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Даже при построении часовок за 20 дней, памяти не хватает.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cвечки&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;_candleManager = new CandleManager(_trader);&lt;/p&gt;
&lt;p&gt;var storageRegistry = new StorageRegistry();
((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = _historyPath;
((LocalMarketDataDrive)storageRegistry.DefaultDrive).UseAlphabeticPath = true; // используем алфавитное хранилище&lt;/p&gt;
&lt;p&gt;_candleManager.Sources.OfType&amp;lt;StorageCandleSource&amp;gt;().Single().StorageRegistry = storageRegistry;&lt;/p&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/24273/</id>
    <title type="text">у меня максимально возможная длина истории получается где-то около 20 дней, если импортировать больш...</title>
    <published>2013-02-27T07:27:26Z</published>
    <updated>2013-02-27T07:27:26Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;у меня максимально возможная длина истории получается где-то около 20 дней, если импортировать больше, вылетает эксепшен OutOfMemory (ОЗУ 8 Гб).
Странно. Попробовал подгрузил тики по ри за 3 месяца, из них были сделаны 1мин. В пике, когда подгружались тики и формировались свечки, прога отъедала ~400 мб. Когда все подргузилось и сформировалось - ~ 250мб.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Да и само построение графика, занимает около 2-х минут. Я так понимаю, это происходит по тому, что данные хранятся в виде сделок, т.е. идет конвертация в нужный формат. Хотя время построения графика не особо критично
Для того чтобы отрисовался график, необходимо чтобы подргузились тики из них сформировались свечки, на это требуется какое то время.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Как придуманное решение - сохранить свечи в txt, и уже обрабатывать оттуда. Но помоему это опять велосипед, ведь для чего-то же Вы придумали формат для хранения свечей? :) Как ими пользоваться?
Да, действительно велосипед.[smile] Подгрузить скачанные гидрой свечки, не сложнее чем тики.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Тики&lt;/strong&gt;(Из справки):&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;

_candleManager = new CandleManager(_trader);

// Добавление в источник свечек TimeFrameCandleBuilder источник данных в виде файлов гидры 
var storageRegistry = new StorageRegistry();
((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = _historyPath;

var cbs = new TradeStorageCandleBuilderSource { StorageRegistry = storageRegistry };

_candleManager.Sources.OfType&amp;lt;TimeFrameCandleBuilder&amp;gt;().Single().Sources.Add(cbs);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Cвечки&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
_candleManager = new CandleManager(_trader);

var storageRegistry = new StorageRegistry();
((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = _historyPath;
((LocalMarketDataDrive)storageRegistry.DefaultDrive).UseAlphabeticPath = true; // используем алфавитное хранилище
						
_candleManager.Sources.OfType&amp;lt;StorageCandleSource&amp;gt;().Single().StorageRegistry = storageRegistry;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Главное потом, когда будет создаваться &lt;strong&gt;CandleSeries&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
readonly TimeSpan _timeFrame = TimeSpan.FromMinutes(1);

...

_series = new CandleSeries(typeof(TimeFrameCandle), _instr1, _timeFrame)

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;И будет запущено получение свечек. Не забыть, по каким инструментам и за какой ТФ гидрой скачаны свечки.
Если например создается &lt;strong&gt;CandleSeries&lt;/strong&gt;1 мин. по RIH3, то значит должны быть закачаны свечки по этому инструменту и данного ТФ.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/24227/</id>
    <title type="text">Вообщем остановился на варианте с хранением свечей в txt, более менее удобно, а главное быстро. И по...</title>
    <published>2013-02-25T20:40:49Z</published>
    <updated>2013-02-25T20:40:49Z</updated>
    <author>
      <name>vint</name>
      <uri>https://stocksharp.ru/users/26935/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Вообщем остановился на варианте с хранением свечей в txt, более менее удобно, а главное быстро. И поковыряв SciChart, откажусь пожалуй от Telerik. Во всяком случае для свечных графиков точно [thumbup]. Но вопросы актуальны! [smile]&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/24225/</id>
    <title type="text">Спасибо, Moadip! Буду пробовать. Да, разрешите еще пару вопросов не совсем по теме (ну чтоб не плоди...</title>
    <published>2013-02-25T15:04:15Z</published>
    <updated>2013-02-25T15:04:15Z</updated>
    <author>
      <name>vint</name>
      <uri>https://stocksharp.ru/users/26935/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Спасибо, Moadip! Буду пробовать.&lt;/p&gt;
&lt;p&gt;Да, разрешите еще пару вопросов не совсем по теме (ну чтоб не плодить новых) - у меня максимально возможная длина истории получается где-то около 20 дней, если импортировать больше, вылетает эксепшен OutOfMemory (ОЗУ 8 Гб). Само приложение, это оригинальный SampleCandle из примеров, только добавленна история. Историю качал гидрой, с финама. Да и само построение графика, занимает около 2-х минут. Я так понимаю, это происходит по тому, что данные хранятся в виде сделок, т.е. идет конвертация в нужный формат.  Хотя время построения графика не особо критично, но вот невозможность загрузить историю больше чем за 20 дней, не приемлима. Как это победить?   Попробовал скачать историю не в виде сделок, а в виде свечей, но как их подключить не понял. Искал в доках аналог TradeStorageCandleBuilderSource, но либо не нашел, либо не увидел... Как придуманное решение - сохранить свечи в txt, и уже обрабатывать оттуда. Но помоему это опять велосипед, ведь для чего-то же Вы придумали формат для хранения свечей? :) Как ими пользоваться? Заранее спасибо!)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/24216/</id>
    <title type="text">Но никак не пойму, как теперь обновлять данные в этой коллекции. Понимаю что делать это нужно по соб...</title>
    <published>2013-02-25T11:21:47Z</published>
    <updated>2013-02-25T11:21:47Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Но никак не пойму, как теперь обновлять данные в этой коллекции. Понимаю что делать это нужно по событию _candleManager.Processing. Но ведь при событии (т.е. при тике) каждый раз приходит новая свечка и добавлять ее сразу в коллекцию нельзя (да и не получается, приложение виснет).
На событие &lt;strong&gt;Processing&lt;/strong&gt;не каждый раз приходит новая свечка. Имеется ввиду новый объект типа &lt;strong&gt;Candle&lt;/strong&gt;. Приходит тот же самый объект, но с измененными св-вами.
Новый объект создается(приходит) когда текущая свечка заканчивается. Это чтобы знать.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Если в коллекцию надо добавлять только целые свечки.
Когда срабатывает событие &lt;strong&gt;Processing&lt;/strong&gt;и приходит свечка, ее можно отфильтровать по &lt;strong&gt;Сandle.State&lt;/strong&gt; == &lt;strong&gt;CandleStates.Finished&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Если надо чтобы свечки на графике &amp;quot;шевелились&amp;quot;. То когда пришла свечка, сравнивать ее время и время последней свечки в коллекции.
Если время одинаковое, значит эта та же свечка - обновляем значения последней свечки в коллекции.
Если время другое, значит добавляем новую свечку в коллекцию.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Уже хочется плюнуть и использовать стандартный Chart
В S# есть SciChart. Попробуйте, шустрый контрол.&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/24211/</id>
    <title type="text">ra81, спасибо за наводку! Привязку данных к графику сделал, на истории работает. Теперь проблема с р...</title>
    <published>2013-02-25T09:30:45Z</published>
    <updated>2013-02-25T09:30:45Z</updated>
    <author>
      <name>vint</name>
      <uri>https://stocksharp.ru/users/26935/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;ra81, спасибо за наводку! Привязку данных к графику сделал, на истории работает. Теперь проблема с реал-таймом. Связку история+реал-тайм, я делал по документации, и со стандартным Chart все работает отлично. С telerik'ом же проблемы. Суть такая - для live-обновления графика teletik, данные для него, должны быть в виде коллекции ObservableCollection.Обновляется коллекция - обновляется график.  Это сделанно (сначала GetCandles(series), потом заполнение ими ObservableCollection). Но никак не пойму, как теперь обновлять данные в этой коллекции. Понимаю что делать это нужно по событию  _candleManager.Processing. Но ведь при событии (т.е. при тике) каждый раз приходит новая свечка и добавлять ее сразу в коллекцию нельзя (да и не получается, приложение виснет).  Что делать не пойму... Уже хочется плюнуть и использовать стандартный Chart.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/24139/</id>
    <title type="text">vint: Это вселяет уверенность :) А поподробнее можно? [rolleyes] Просто не хотелось бы в очередной р...</title>
    <published>2013-02-20T11:26:20Z</published>
    <updated>2013-02-20T11:26:20Z</updated>
    <author>
      <name>ra81</name>
      <uri>https://stocksharp.ru/users/16581/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(24138)" rel="nofollow" target="_blank"&gt;vint&lt;/a&gt;:&lt;/strong&gt;
Это вселяет уверенность :) А поподробнее можно? [rolleyes]  Просто не хотелось бы в очередной раз изобретать велосипед...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Свечи должны быть в CandleContainer. Исходники S# берете и вперед для начала. Если поймете что не разобраться, обращайтесь народ подскажет.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/24138/</id>
    <title type="text">Это вселяет уверенность :) А поподробнее можно? [rolleyes] Просто не хотелось бы в очередной раз изо...</title>
    <published>2013-02-20T11:16:21Z</published>
    <updated>2013-02-20T11:16:21Z</updated>
    <author>
      <name>vint</name>
      <uri>https://stocksharp.ru/users/26935/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Это вселяет уверенность :) А поподробнее можно? [rolleyes]  Просто не хотелось бы в очередной раз изобретать велосипед...&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/24134/</id>
    <title type="text">Мы же как-то используем сторонние контролы в своих роботах.[wink] </title>
    <published>2013-02-19T21:22:33Z</published>
    <updated>2013-02-19T21:22:33Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Мы же как-то используем сторонние контролы в своих роботах.[wink]&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/24133/</id>
    <title type="text">Доброго времени суток! Разбираюсь с этой замечательной штукой StockSharp и возник вопрос - а есть ли...</title>
    <published>2013-02-19T20:38:06Z</published>
    <updated>2013-02-19T20:38:06Z</updated>
    <author>
      <name>vint</name>
      <uri>https://stocksharp.ru/users/26935/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Доброго времени суток! Разбираюсь с этой замечательной штукой StockSharp и возник вопрос - а есть ли возможность, как-то приспособить S# для работы с другими контролами? Например с &lt;a href="http://www.telerik.com/" rel="nofollow" target="_blank"&gt;Telerik&lt;/a&gt;? Давненько полюбил этот телерик за красоту и удобство, и хотел бы использовать его и в связке с S#. В частности, сейчас стою перед вопросом как 'скормить' графику, данные из CandleSeries (или они в CandleManager?) ? Буду очень признателен, если кто-что подскажет [smile]&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>