﻿<?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">Форум. StockSharp</title>
  <id>https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=177</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-05-02T19:37:02Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=177" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/2573/</id>
    <title type="text">Сработали правила на исполнение и отмену заяки</title>
    <published>2012-04-05T09:43:40Z</published>
    <updated>2012-04-05T09:43:40Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Стартегия поставила заявку, на эту заявку повелили правило на исполнение и отмену.&lt;br /&gt;Заявка была исполнена и почему-то сработали оба правила.&lt;br /&gt;&lt;br /&gt;Лог.&lt;br /&gt;11:50:17.155 |            | CRBR            | Стратегия запущена.&lt;br /&gt;11:50:17.156 |            | CRBR            | FirstActiveNewRegime 0&lt;br /&gt;11:50:17.159 |            | CRBR            | CreateOrder OnStarting&lt;br /&gt;11:50:17.214 |            | CRBR            | RegisterOrder 42375260&lt;br /&gt;11:50:26.476 |            | CRBR            | Новая Sell сделка 22436851 по цене 158400 на 4 заявки 42375260.&lt;br /&gt;11:50:26.477 |            | CRBR            | Правило &amp;#39;Новые сделки заявки 0 (63366267)&amp;#39; активировано.&lt;br /&gt;11:50:26.478 |            | CRBR            | IsMatched 42375260&lt;br /&gt;11:50:26.490 |            | CRBR            | DeactiveRule&lt;br /&gt;11:50:26.493 |            | CRBR            | Правило &amp;#39;Новые сделки заявки 0 (63366267)&amp;#39; удалено.&lt;br /&gt;11:50:27.488 |            | CRBR            | Новая позиция -4.&lt;br /&gt;11:50:29.710 |            | CRBR            | Правило &amp;#39;Отмена заявки 0 (57884658)&amp;#39; активировано.&lt;br /&gt;11:50:29.752 |            | CRBR            | IsOrderCancelInClearing 05.04.2012 11:50:28 False&lt;br /&gt;11:50:29.755 |            | CRBR            | order.GetMatchedVolume= 4&lt;br /&gt;11:50:29.756 |            | CRBR            | CreateOrder OnOrderCanceled&lt;br /&gt;11:50:30.215 |            | CRBR            | RegisterOrder 42375316&lt;br /&gt;11:50:30.218 |            | CRBR            | Правило &amp;#39;Отмена заявки 0 (57884658)&amp;#39; удалено.&lt;br /&gt;&lt;br /&gt;Регистрация заявки&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

private void CreateOrder(decimal price, decimal volume, string callingMethod)
        {
            WriteDiagnostics(&amp;quot;CreateOrder &amp;quot; + callingMethod);

            _order = new Order
            {
                Portfolio = this.Portfolio,
                Volume = volume,
                Price = Security.ShrinkPrice(price), 
                Security = this.Security,
                Direction = this.Direction,
                Trader = this.Trader,
            };

            this.When(_order.Canceled())
                .Do(OnOrderCanceled)
                .Once()
                .Sync(syncRules);

            this.When(_order.RegisterFailed())
                .Do(OnRegisterFailed)
                .Once();

            CreateRuleNewTradesOrder(_order);

            RegisterOrder(_order);
        }

 private StrategyRule&amp;lt;IEnumerable&amp;lt;MyTrade&amp;gt;&amp;gt; CreateRuleNewTradesOrder(Order order)
        {
            return (StrategyRule&amp;lt;IEnumerable&amp;lt;MyTrade&amp;gt;&amp;gt;)this.When(StrategyRuleHelper.NewTrades(order))
                .Do(() =&amp;gt; IsMatched(order, _ruleWaiting))
                .Once()
                .Sync(syncRules);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2572/</id>
    <title type="text">что с PositionManager?</title>
    <published>2012-04-04T14:17:41Z</published>
    <updated>2012-04-04T14:17:41Z</updated>
    <author>
      <name>Johny Cash</name>
      <uri>https://stocksharp.ru/users/199/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Всем привет!&lt;br /&gt;&lt;br /&gt;Попробовал создать стратегию и вроде все получилось, но не могу получить размер позиции&lt;br /&gt;Стратегия обрабатывается по приходу новых сделок&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
 
protected override void OnStarting()
        {
            this
                .When(Security.SecurityNewTrades())
                .Do(MakePosition);
	
            base.OnStarting();
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;В процедуре MakePosition такой код&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

        ...
        var _myPosition = Trader.GetPosition(Portfolio, Security);
        	if (_myPosition != null)
        	{
	        Console.WriteLine(&amp;quot;Position current value: {0}&amp;quot;, _myPosition.CurrentValue);
		Console.WriteLine(&amp;quot;Position begin value: {0}&amp;quot;, _myPosition.BeginValue);
		Console.WriteLine(&amp;quot;Position blocked value: {0}&amp;quot;, _myPosition.BlockedValue);        		
        	}


	if (lastTrade.Volume &amp;gt; 3)
            {
                var condition = true;
                var conditionDirection = (first &amp;gt; last);
                if (condition &amp;amp;&amp;amp; !_gotPosition)
                {
                    var direction = conditionDirection ? OrderDirections.Buy : OrderDirections.Sell;
                    var order = this.CreateOrder(direction, Security.GetMarketPrice(direction), Volume);
		   RegisterOrder(order);
		   _gotPosition = true;
                }
            }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;PositionManager.Position всегда показывает 0.&lt;br /&gt;Покопавшись на форуме нашел что можно получить позицию из трейдера, но Trader.GetPosition() у меня всегда возвращает null,&lt;br /&gt;даже когда проходит не одна сделка, а несколько.&lt;br /&gt;Пришлось заводить переменную _gotPosition чтобы понять что позиция есть.&lt;br /&gt;Чуть не забыл, проверял на фьюче сбера.&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2571/</id>
    <title type="text">Как правильно выйти из позиции и остановить стратегию?..</title>
    <published>2012-04-04T13:27:09Z</published>
    <updated>2012-04-04T13:27:09Z</updated>
    <author>
      <name>Spiritschaser</name>
      <uri>https://stocksharp.ru/users/1927/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Добрый день!&lt;br /&gt;&lt;br /&gt;Что-то не совсем понимаю. &lt;br /&gt;&lt;br /&gt;Я сделал интрадэй робота на основе SampleSMA. Хочу сделать так, чтобы, если что-то происходит, и P&amp;amp;L становится меньше заданного параметра, позиция ликвидируется, робот останавливается.&lt;br /&gt;&lt;br /&gt;Но у меня заявки выставляются с помощью котирования, и если я просто сделаю:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

                    if (PnLManager.PnL &amp;gt; 1600 || PnLManager.PnL &amp;lt; -100)
                    {
                        decimal Volume = System.Math.Abs(PositionManager.Position);
                        OrderDirections orderDirection = OrderDirections.Buy;
                        if (PositionManager.Position &amp;lt; 0) { orderDirection = OrderDirections.Buy; }
                        if (PositionManager.Position &amp;gt; 0) { orderDirection = OrderDirections.Sell; }

                        var order = this.CreateOrder(orderDirection, StockSharp.Algo.TraderHelper.GetMarketPrice(Security, orderDirection), Volume);

                        if (PositionManager.Position != 0)
                        {
                            var strategy = new MarketQuotingStrategy(order, new Unit(), new Unit());
                            ChildStrategies.Add(strategy);
                        }

                        PositionManager.Position = 0;
                        Stop();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;- то у меня выставится заявка и остановится стратегия, и если рынок уйдёт, заявка не исполнится.&lt;br /&gt;&lt;br /&gt;Как мне правильно дожидаться окончания котирования?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2570/</id>
    <title type="text">Стратегия останавливается, но не остановилась.</title>
    <published>2012-04-04T10:32:45Z</published>
    <updated>2012-04-04T10:32:45Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">У стратегии был вызван метод Stop, в лог  было написано Стратегия останавливается ,но полной установки не произошло.&lt;br /&gt;В стратегии правило реагирует на изменение стакана. Стакан был выбран RIM.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

this.When(Security.MarketDepthChanged())
                    .Do(SendBuyOrder)
                    .Once()
                    .Sync(syncRules);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Стратегия постоянно подписывается на это правило.&lt;br /&gt;Может быть так, что стратегия не остновилась из-за того, что правила постоянно срабатывали?&lt;br /&gt;Но ведь есть промежуток, когда правило сработало, а на новое стратегия не подписана.&lt;br /&gt;версия - 4.0.23</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2569/</id>
    <title type="text">Несоответствие(запаздывание) ask bid(volume)</title>
    <published>2012-04-04T09:31:51Z</published>
    <updated>2012-04-04T09:31:51Z</updated>
    <author>
      <name>Макс</name>
      <uri>https://stocksharp.ru/users/6040/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Заметил, что реальные ask bid (их объемы)из стаканов не всегда совпадают с Security.BestBid(BestAsk) свойствами.&lt;br /&gt;Например,&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

//изменение стакана
 Trader.QuotesChanged += _quote =&amp;gt; this.GuiAsync(() =&amp;gt;
   {
     if (_ins1 != null &amp;amp;&amp;amp; _ins2 != null &amp;amp;&amp;amp; _ins1.BestBid != null &amp;amp;&amp;amp; _ins2.BestBid != null )
       if (_ins2.LastTrade!=null &amp;amp;&amp;amp; _ins1.LastTrade!=null)
        {
        label1.Content = secCode1 + &amp;quot;  &amp;quot; + _ins1.BestBid.Price + &amp;quot; (&amp;quot; + _ins1.BestBid.Volume + &amp;quot;) &amp;quot; + _ins1.BestAsk.Price + &amp;quot; (&amp;quot; + _ins1.BestAsk.Volume + &amp;quot;) &amp;quot; + &amp;quot; Спред: &amp;quot; + _ins1.BestPair.SpreadPrice;

        label3.Content = secCode2 + &amp;quot;  &amp;quot; + _ins2.BestBid.Price + &amp;quot; (&amp;quot; + _ins2.BestBid.Volume + &amp;quot;) &amp;quot; + _ins2.BestAsk.Price + &amp;quot; (&amp;quot; + _ins2.BestAsk.Volume + &amp;quot;) &amp;quot; + &amp;quot; Спред: &amp;quot; + _ins2.BestPair.SpreadPrice;
//...................
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;а вот что получается:&lt;br /&gt;&lt;a href='http://vipstatus.ru/3.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://vipstatus.ru/3.jpg" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2568/</id>
    <title type="text">Один экземпляр стратегии стартовал дважды.</title>
    <published>2012-04-04T07:41:33Z</published>
    <updated>2012-04-04T07:41:33Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">S# - 4.0.23&lt;br /&gt;СТратегия 1 является родительской, стартагия 2 - дочерней.&lt;br /&gt;Произошло такое, что вижу в первый раз. дочерная стратегия была запушена два раза.&lt;br /&gt;лог.&lt;br /&gt;b6246d03-2331-41a2-97e2-ffdf69ee76ce ARBR  Buy  LKM2 04.04.2012 11:11:13 OnStarting0&lt;br /&gt;b6246d03-2331-41a2-97e2-ffdf69ee76ce ARBR  Buy  LKM2 04.04.2012 11:11:13 SendBuyOrder&lt;br /&gt;b6246d03-2331-41a2-97e2-ffdf69ee76ce ARBR  Buy  LKM2 04.04.2012 11:11:13 GetCurPrice 17560,00 0&lt;br /&gt;b6246d03-2331-41a2-97e2-ffdf69ee76ce ARBR  Buy  LKM2 04.04.2012 11:11:13 CancelOrder 40229067&lt;br /&gt;b6246d03-2331-41a2-97e2-ffdf69ee76ce ARBR  Buy  LKM2 04.04.2012 11:11:13 OnStopped&lt;br /&gt;b6246d03-2331-41a2-97e2-ffdf69ee76ce ARBR  Buy  LKM2 04.04.2012 11:11:14 RegisterOrder 40229067&lt;br /&gt;b6246d03-2331-41a2-97e2-ffdf69ee76ce ARBR  Buy  LKM2 04.04.2012 11:11:14 OnStarting1&lt;br /&gt;b6246d03-2331-41a2-97e2-ffdf69ee76ce ARBR  Buy  LKM2 04.04.2012 11:11:14 OnStarting0&lt;br /&gt;b6246d03-2331-41a2-97e2-ffdf69ee76ce ARBR  Buy  LKM2 04.04.2012 11:11:14 SendBuyOrder&lt;br /&gt;&lt;br /&gt;Как видно, запись OnStarting0 повторяется, это говорит о повторном старте данного экземпляра стратегии.&lt;br /&gt;Код&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

protected override void OnStarting()
        {
            WriteDiagnostics(&amp;quot;OnStarting0&amp;quot;);
            base.OnStarting();

            WriteDiagnostics(&amp;quot;OnStarting1&amp;quot;);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2567/</id>
    <title type="text">Событие изменения цены Bid / Ask</title>
    <published>2012-04-04T06:04:29Z</published>
    <updated>2012-04-04T06:04:29Z</updated>
    <author>
      <name>guest</name>
      <uri>https://stocksharp.ru/users/28427/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Прошу извинения, если вопрос глупый, но я не нашел, есть ли какое событие&lt;br /&gt;которое вызывается когда изменилась цена Bid / Ask  по инструменту?&lt;br /&gt;Интересует именно изменение цены, изменение количество контрактов&lt;br /&gt;выставленных по наилучшим ценам не важно для меня.&lt;br /&gt;Заранее спасибо!</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2566/</id>
    <title type="text">Все свои сделки с начала дня</title>
    <published>2012-04-03T16:49:26Z</published>
    <updated>2012-04-03T16:49:26Z</updated>
    <author>
      <name>Mirovan</name>
      <uri>https://stocksharp.ru/users/797/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">1. Есть ли способ получить все свои сделки с начала дня (SmartCOM) ?&lt;br /&gt;После запуска экспорта поле MyTrades (объекта класса SmartTrader) содержит 0 сделок.&lt;br /&gt;&lt;br /&gt;2. Запустил Sample Smart - похоже что неправильно отображается время заявок и количество сделок. При этом всего сделок в SmartTrade - 3 штуки, а в приложении отображается только одна. В чем может быть проблема ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://i43.tinypic.com/1568i02.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://i43.tinypic.com/1568i02.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt; &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABxHYwYreXawPgHKC8-E64cpR2XpxwxbGivh60EbGN1qjgHo9vAcMOKx_6afwuHfe8" title="http://s13.postimage.org/whrk5tiol/screen.png
"&gt;http://s13.postimage.org/whrk5tiol/screen.png
&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;S# версия 4.0.23</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2565/</id>
    <title type="text">Как BaseTrader выполняет MultiCast делегаты?</title>
    <published>2012-04-03T14:30:20Z</published>
    <updated>2012-04-03T14:30:20Z</updated>
    <author>
      <name>sergun</name>
      <uri>https://stocksharp.ru/users/6139/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Каждый из делегатов MultiCast делегата может попасть в свою нить? Или же все делегаты одного MultiCast делагата выполняются в общей нити?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2564/</id>
    <title type="text">Формат данных для Гидры</title>
    <published>2012-04-03T12:31:46Z</published>
    <updated>2012-04-03T12:31:46Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">В версии S# 4.0 формат данных был 1.XXX. В версии S# 4.1 было два формата, 2.0 и 3.0. Ниже два скрипта. Первый переводит 1.XXX в 2.0. Второй переводит из 2.0 в 3.0. Кто использует Гидру 4.0, нужно использовать оба скрипта, и прогнать их друг за другом. Кто уже использовал 4.1, то прогнать только второй. Пути, естественно, заменить в коде.&lt;br /&gt;&lt;br /&gt;Конвертация в формат 2.0:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
foreach (var secDir in Directory.EnumerateDirectories(@&amp;quot;d:\SS\D\HydraRi3&amp;quot;))
{
	if (Directory.EnumerateFiles(secDir).Any())
		continue;
				
	var dateDirs = Directory.GetDirectories(secDir);

	var prefixes = new[] { &amp;quot;trades&amp;quot;, &amp;quot;quotes&amp;quot; };
	foreach (var prefix in prefixes)
	{
				
		var metaInfo = new Dictionary&amp;lt;DateTime, IDictionary&amp;lt;string, object&amp;gt;&amp;gt;();



		foreach (var dir in dateDirs)
		{
			var date = Path.GetFileName(dir).ToDateTime(&amp;quot;yyyy_MM_dd&amp;quot;);

			var files = Directory.GetFiles(dir);


			var meta = files.FirstOrDefault(f =&amp;gt; Path.GetFileName(f) == prefix+&amp;quot;.xml&amp;quot;);
			var data = files.FirstOrDefault(f =&amp;gt; Path.GetFileName(f) == prefix+&amp;quot;.bin&amp;quot;);
			if (null != meta)
			{
				CultureInfo.InvariantCulture.DoInCulture(() =&amp;gt; metaInfo.Add(date, new XmlSerializer&amp;lt;IDictionary&amp;lt;string, object&amp;gt;&amp;gt;().Deserialize(meta)));

				File.Move(data, Path.Combine(secDir, prefix + &amp;quot;_&amp;quot; + Path.GetFileName(dir) + &amp;quot;.bin&amp;quot;));
			}
		}
		CultureInfo.InvariantCulture.DoInCulture(() =&amp;gt; new XmlSerializer&amp;lt;IDictionary&amp;lt;DateTime, IDictionary&amp;lt;string, object&amp;gt;&amp;gt;&amp;gt;().Serialize(metaInfo, Path.Combine(secDir, prefix+&amp;quot;.xml&amp;quot;)));
	}

	foreach (var dir in dateDirs)
	{
		Directory.Delete(dir, true);
	}

	Console.WriteLine(Path.GetFileName(secDir));
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Конвертация в формат 3.0:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
var input = @&amp;quot;d:\SS\D\HydraRi3&amp;quot;;
var output = @&amp;quot;d:\SS\D\HydraRi5.1&amp;quot;;

foreach (var secDir in Directory.EnumerateDirectories(input))
{
	var prefixes = new[] { &amp;quot;quotes&amp;quot;, &amp;quot;trades&amp;quot;, &amp;quot;orderLog&amp;quot; };
	var secId = Path.GetFileName(secDir);
	Directory.CreateDirectory(Path.Combine(output,secId));
	foreach (var prefix in prefixes)
	{
		var metafile = secDir + &amp;quot;\\&amp;quot; + prefix + &amp;quot;.xml&amp;quot;;
		if (File.Exists(metafile))
		{
			IDictionary&amp;lt;DateTime, IDictionary&amp;lt;string, object&amp;gt;&amp;gt; data=null; 
			CultureInfo.InvariantCulture.DoInCulture(() =&amp;gt; data = new XmlSerializer&amp;lt;IDictionary&amp;lt;DateTime, IDictionary&amp;lt;string, object&amp;gt;&amp;gt;&amp;gt;().Deserialize(metafile));
			//Directory.EnumerateFiles(secDir);
			foreach (var date in data.Keys)
			{
				var fileName = &amp;quot;{0}_{1}.bin&amp;quot;.Put(prefix, date.ToString(&amp;quot;yyyy_MM_dd&amp;quot;));
				fileName = Path.Combine(secDir,fileName);
				if (File.Exists(fileName))
				{
					var outSecDir = Path.Combine(output, secId, date.ToString(&amp;quot;yyyy_MM_dd&amp;quot;));
					Directory.CreateDirectory(outSecDir);

					var outFile = Path.Combine(outSecDir, prefix + &amp;quot;.bin&amp;quot;);
					using (var s = new FileStream(outFile, FileMode.Create, FileAccess.Write))
					{
						var dict = data[date];

						s.WriteByte(3); s.WriteByte(0);
						s.Write((int)dict[&amp;quot;count&amp;quot;]);
						s.Write((decimal)dict[&amp;quot;minStepSize&amp;quot;]);
						s.Write((decimal)0);
						s.Write(new DateTime(dict[&amp;quot;firstTime&amp;quot;].To&amp;lt;long&amp;gt;()));
						s.Write(new DateTime(dict[&amp;quot;prevTime&amp;quot;].To&amp;lt;long&amp;gt;()));

						if (prefix.Equals(&amp;quot;trades&amp;quot;))
						{
							s.Write((long)dict[&amp;quot;firstId&amp;quot;]);
							s.Write((long)dict[&amp;quot;prevId&amp;quot;]);
							s.Write((decimal)dict[&amp;quot;firstPrice&amp;quot;]);
							s.Write((decimal)dict[&amp;quot;prevPrice&amp;quot;]); 
						}
						else if (prefix.Equals(&amp;quot;quotes&amp;quot;))
						{
							s.Write((decimal)dict[&amp;quot;firstPrice&amp;quot;]);
							s.Write((decimal)dict[&amp;quot;prevPrice&amp;quot;]); 									
						}
						else if (prefix.Equals(&amp;quot;orderLog&amp;quot;))
						{
							s.Write((long)dict[&amp;quot;firstOrderId&amp;quot;]);
							s.Write((long)dict[&amp;quot;firstTradeId&amp;quot;]);
							s.Write((long)dict[&amp;quot;prevOrderId&amp;quot;]);
							s.Write((long)dict[&amp;quot;prevTradeId&amp;quot;]);
							s.Write((decimal)dict[&amp;quot;firstPrice&amp;quot;]);
							s.Write((decimal)dict[&amp;quot;prevPrice&amp;quot;]);
						}

						s.WriteRaw(File.ReadAllBytes(fileName));
					}
				}
			}
		}
	}
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2563/</id>
    <title type="text">Какой теперь формат у файлов гидры?</title>
    <published>2012-04-03T11:34:55Z</published>
    <updated>2012-04-03T11:34:55Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">Был S# 4.1 - 15891&lt;br /&gt;&lt;br /&gt;Данные для 4.1 конвертировал из 4.0 с помощью &lt;a href="http://stocksharp.com/posts/m/17173/" title="http://stocksharp.com/posts/m/17173/"&gt;этого&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Обновился до 4.1 - 15979. Формат данных &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAbncQVTu8T5yVB2LlB47S-5KHyW8ZN6xcH4iJyKFKwUQgjwasowjZHTe_leX0HSMEZMleO4gnNqwGCWXzqWS-52RgJ60oUQEnW6eGsqHu7bg" title="http://stocksharp.codeplex.com/SourceControl/changeset/changes/15979"&gt;поменялся&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Чем теперь конвертировать? И из какого формата? Из 4.0 или из старого 4.1?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2562/</id>
    <title type="text">подключение с помощью OEC коннектора к демо доступу</title>
    <published>2012-04-03T10:39:43Z</published>
    <updated>2012-04-03T10:39:43Z</updated>
    <author>
      <name>fish</name>
      <uri>https://stocksharp.ru/users/241/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="OpenECry" />
    <content type="html">Попробовал подключиться с данными для демо доступа к api.openecry.com:9200 &lt;br /&gt;Видно для демо доступа другой адрес. Есть у кого нить эти данные, а то в &lt;br /&gt;тех. поддержки OEC меня так и не поняли.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2561/</id>
    <title type="text">не все заявки в QuikTrader.Orders в последней версии 23</title>
    <published>2012-04-03T08:49:19Z</published>
    <updated>2012-04-03T08:49:19Z</updated>
    <author>
      <name>Mitz</name>
      <uri>https://stocksharp.ru/users/27752/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">решил обновиться до новой версии, в Квике висит открытая лимита , в коллекции заявок её нету.&lt;br /&gt;откатился назад до декабрьской 16ой, всё гуд </content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2560/</id>
    <title type="text">Синхронизация времени с биржей</title>
    <published>2012-04-03T06:44:43Z</published>
    <updated>2012-04-03T06:44:43Z</updated>
    <author>
      <name>PavelAd</name>
      <uri>https://stocksharp.ru/users/6072/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Есть такой код по синхронизации времени:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

Trader = new QuikTrader(Path.Text);
this.GuiAsync(() =&amp;gt; Trader.SyncMarketTime(Exchange.Rts));
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;После выполнения этого кода, если сравнить время Trader.MarketTime и время в терминале Quik, то видно что разница составляет примерно 23 секунды. &lt;br /&gt;Пробовал вторую строку заменить на такую:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
this.GuiAsync(() =&amp;gt; Trader.SyncMarketTime(Exchange.Micex));&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Так же время отличается.&lt;br /&gt;&lt;br /&gt;Уточнял у брокера, сказали что время у них на сервер одинаковое с биржей.&lt;br /&gt;&lt;br /&gt;Подскажите почему не верно синхронизируется время?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2559/</id>
    <title type="text">Requested Clipboard operation did not succeed</title>
    <published>2012-04-03T03:59:50Z</published>
    <updated>2012-04-03T03:59:50Z</updated>
    <author>
      <name>XMbIPb</name>
      <uri>https://stocksharp.ru/users/6200/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">Вылетает при запуске гидры на слабых машинах под win2k3.. жалуется на:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
Securities.ForEach(_trader.Trader.RegisterQuotes)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; &lt;br /&gt;Можно как-то вылечить?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2558/</id>
    <title type="text">Получение не всех сделок из quik</title>
    <published>2012-04-03T03:46:41Z</published>
    <updated>2012-04-03T03:46:41Z</updated>
    <author>
      <name>PavelAd</name>
      <uri>https://stocksharp.ru/users/6072/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Как из quik получить не все последние сделки, а сделки:&lt;br /&gt;1. за последние N секунд(минут)&lt;br /&gt;2. N последних сделок.&lt;br /&gt;это возможно?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2557/</id>
    <title type="text">последняя dev-версия, ошибка</title>
    <published>2012-04-02T18:40:47Z</published>
    <updated>2012-04-02T18:40:47Z</updated>
    <author>
      <name>Daenur</name>
      <uri>https://stocksharp.ru/users/28118/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">В TradesWindow.xaml.cs возникает ошибка. Подробнее на скриншоте:&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2554/</id>
    <title type="text">v4.0.23 RIM2 MinStepPrice</title>
    <published>2012-04-02T10:42:01Z</published>
    <updated>2012-04-02T10:42:01Z</updated>
    <author>
      <name>tmt</name>
      <uri>https://stocksharp.ru/users/6032/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">MinStepPrice не правильно показывает значения, у RIM2 ~ 2.94, а Security.MinStepPrice = 1 (у других инструментов не проверял)</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2553/</id>
    <title type="text">Утечки памяти при тестировании на исторических данных</title>
    <published>2012-04-02T09:41:15Z</published>
    <updated>2012-04-02T09:41:15Z</updated>
    <author>
      <name>zorran</name>
      <uri>https://stocksharp.ru/users/28229/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">Обнаружил утечки памяти при тестировании на исторических данных, при многократном повторении.&lt;br /&gt;Сначал грешил на свою стратегию, потом попробовал запускать пример SampleHistoryTesting многократно, &lt;br /&gt;При достижении 30-40 повторений программа подвисала, не выдавая никаких сообщений.&lt;br /&gt;&lt;br /&gt;Далее, для чистоты эксперимента подправил код SampleHistoryTesting:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
		private void StartBtn_Click( object sender, RoutedEventArgs e ) {
				
			for( int i = 1; i &amp;lt; 1000; i++ ) {
				Run();

				if( _trader.State != EmulationStates.Started ) { Thread.Sleep( 10 );  }
				if( _trader.State != EmulationStates.Stopped ) { Thread.Sleep( 10 ); }
			}

			MessageBox.Show( &amp;quot;Закончено&amp;quot; );
		}
		
		
		private void Run()
		{
		
		// Ну а тут сам код стратегии, что был раньше в StartBtn_Click 
		
		...
		
		// изменил только период, для более быстрого тестирования
			var startTime = new DateTime(2009, 6, 1);
			var stopTime = new DateTime(2009, 6, 3);
		
		....
		
		}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;После запуска данный код через некоторое время выдает Out of memory эксепшн.		&lt;br /&gt;(Пробовал, как с включенным выводом инфы в форму, так и выключеным)&lt;br /&gt;&lt;br /&gt;на 100 итерациях уже все нормально проходит.&lt;br /&gt;&lt;br /&gt;Памяти достаточно - 4 гб озу&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Текст исключения:&lt;br /&gt;---------------------------&lt;br /&gt;System.OutOfMemoryException: Выдано исключение типа &amp;quot;System.OutOfMemoryException&amp;quot;.&lt;br /&gt;&lt;br /&gt;   в System.Linq.Buffer`1.ToArray()&lt;br /&gt;   в System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)&lt;br /&gt;   в Ecng.Common.RandomArray`1..ctor(T min, T max, Int32 count)&lt;br /&gt;   в StockSharp.Algo.Testing.MarketDataGenerator`1.Init()&lt;br /&gt;   в StockSharp.Algo.Testing.TrendMarketDepthGenerator.Init()&lt;br /&gt;   в StockSharp.Algo.Testing.EmulationTrader.Start(DateTime startDate, DateTime stopDate)&lt;br /&gt;   в SampleHistoryTesting.MainWindow.Run() в C:\Projects\VS\OrigSampleHistoryTesting\MainWindow.xaml.cs:строка 219&lt;br /&gt;   в SampleHistoryTesting.MainWindow.StartBtn_Click(Object sender, RoutedEventArgs e) в C:\Projects\VS\OrigSampleHistoryTesting\MainWindow.xaml.cs:строка 63&lt;br /&gt;   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)&lt;br /&gt;   в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)&lt;br /&gt;   в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)&lt;br /&gt;   в System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)&lt;br /&gt;   в System.Windows.Controls.Primitives.ButtonBase.OnClick()&lt;br /&gt;   в System.Windows.Controls.Button.OnClick()&lt;br /&gt;   в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)&lt;br /&gt;   в System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)&lt;br /&gt;   в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)&lt;br /&gt;   в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)&lt;br /&gt;   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)&lt;br /&gt;   в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)&lt;br /&gt;   в System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)&lt;br /&gt;   в System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)&lt;br /&gt;   в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)&lt;br /&gt;   в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)&lt;br /&gt;   в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)&lt;br /&gt;   в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)&lt;br /&gt;   в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)&lt;br /&gt;   в System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)&lt;br /&gt;   в System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)&lt;br /&gt;   в System.Windows.Input.InputManager.ProcessStagingArea()&lt;br /&gt;   в System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)&lt;br /&gt;   в System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)&lt;br /&gt;   в System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)&lt;br /&gt;   в System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean&amp;amp; handled)&lt;br /&gt;   в System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp;amp; handled)&lt;br /&gt;   в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp;amp; handled)&lt;br /&gt;   в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)&lt;br /&gt;   в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)&lt;br /&gt;   в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2552/</id>
    <title type="text">Создание своей StrategyRule в новых версиях</title>
    <published>2012-04-02T04:50:10Z</published>
    <updated>2012-04-02T04:50:10Z</updated>
    <author>
      <name>Supervisor</name>
      <uri>https://stocksharp.ru/users/27975/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Проблема появилась насколько помню после версии 4.0.21.&lt;br /&gt;&lt;br /&gt;Нужно создать правило стратегии которое не принимает никаких аргументов - всегда делал это как написано в хелпе:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

  private sealed class NewMyTradesStrategyRule : StrategyRule
  {
    ...
  }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Но после вышеуказанной версии данный код не работает с ошибкой:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;Incorrect number of type parameters in reference to class &amp;#39;StockSharp.Algo.Strategies.StrategyRule&amp;lt;TArg&amp;gt;&amp;#39;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Прошу прощения конечно за лоховство, тут наверное вопрос в знании С#, но пишу так как есть ошибочный пример в справке :)</content>
  </entry>
</feed>