﻿<?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">При тестировании выдает исключение  ContextSwitchDeadlock was detected</title>
  <id>~/topic/3291/pri-testirovanii-vydaet-isklyuchenie--contextswitchdeadlock-was-detected/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-15T11:19:32Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=3291" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/23320/</id>
    <title type="text">я думаю сделать обновление с каким-нибудь интервалом, например раз в секунду или по какому-то другом...</title>
    <published>2013-01-11T13:32:19Z</published>
    <updated>2013-01-11T13:32:19Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">я думаю сделать обновление с каким-нибудь интервалом, например раз в секунду или по какому-то другому событию, например закрытию очередной сделки</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23319/</id>
    <title type="text">Сталкивался с подобной ситуацией. Когда во время тестирования выводил свечки с отрисованными трейдам...</title>
    <published>2013-01-11T13:27:03Z</published>
    <updated>2013-01-11T13:27:03Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Сталкивался с подобной ситуацией. Когда во время тестирования выводил свечки с отрисованными трейдами. Все жутко тормозило.&lt;br /&gt;&lt;br /&gt;В итоге тестирование делается без &amp;quot;визуализации&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/23318/</id>
    <title type="text">Закоментировал : //_strategy.PnLChanged += () =&amp;gt; //{ // var data = new EquityData // { // Time = _st...</title>
    <published>2013-01-11T13:13:55Z</published>
    <updated>2013-01-11T13:18:41Z</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;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:plain"&gt;

//_strategy.PnLChanged += () =&amp;gt;
            //{
            //    var data = new EquityData
            //    {
            //        Time = _strategy.GetMarketTime(),
            //        Value = _strategy.PnL,
            //    };

            //    this.GuiAsync(() =&amp;gt;
            //    {
            //        _curveItems.Add(data);
            //      
               
            //};
&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>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23317/</id>
    <title type="text">Вот такую штуку выдает: Откройте в древовидном виде, чтоб было понятно, что зачем вызывается. Хотя п...</title>
    <published>2013-01-11T13:10:03Z</published>
    <updated>2013-01-11T13:10:03Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</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/23315/" 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;Хотя примерно ясно, что COM ошибки идут из общения с древним компонентом чарта. WPF в таких случаях просто отрисовывает через интервалы времени. Не понятно кстати откуда и зачем там поиск вызывается. Зато понятно, что именно этот поиск всё и тормозит. Причём, чем больше свечек, тем он, конечно, медленнее.&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/23316/</id>
    <title type="text">Последняя версия - 4.1.7. У вас же в архиве 4.1.6 Судя по скриншоту - у вас общение с гуём отнимает ...</title>
    <published>2013-01-11T12:51:14Z</published>
    <updated>2013-01-11T12:51:14Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Последняя версия - 4.1.7. У вас же в архиве 4.1.6&lt;br /&gt;Судя по скриншоту - у вас общение с гуём отнимает туеву хучу времени</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23315/</id>
    <title type="text">Попробуйте на последней версии с codeplex Стояла последняя версия. Сейчас для надежности заново скач...</title>
    <published>2013-01-11T12:44:31Z</published>
    <updated>2013-01-11T12:44:31Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</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;Попробуйте на последней версии с codeplex&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Стояла последняя версия. Сейчас для надежности заново скачал - все без изменений. &lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt; Запустите под DotTrace и смотрите, что у вас слишком часто и/или слишком долго выполняется.&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.ru/posts/m/23312/</id>
    <title type="text">Если убираю : .... Но как это может влиять, если добавление на форму идет только после окончания 15м...</title>
    <published>2013-01-11T12:13:57Z</published>
    <updated>2013-01-11T12:13:57Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</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/23310/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Если убираю :&lt;br /&gt;.... &lt;br /&gt;Но как это может влиять, если добавление на форму идет только после окончания 15мин свечек.  В тестерах на старых версиях у меня после каждого тика выводилась подобная инфа и никаких ошибок не возникало. &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Не занимайтесь гаданием. Запустите под DotTrace и смотрите, что у вас слишком часто и/или слишком долго выполняется.&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/23311/</id>
    <title type="text">Попробуйте на последней версии с codeplex</title>
    <published>2013-01-11T12:04:22Z</published>
    <updated>2013-01-11T12:04:22Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Попробуйте на последней версии с codeplex</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23310/</id>
    <title type="text">Если убираю : MainWindow.Instance.GuiAsync(() =&amp;gt; { MainWindow.Instance.trades_time.Text = Security.L...</title>
    <published>2013-01-11T11:57:14Z</published>
    <updated>2013-01-11T11:57:14Z</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;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:plain"&gt;

 MainWindow.Instance.GuiAsync(() =&amp;gt;
            {
                MainWindow.Instance.trades_time.Text = Security.LastTrade.Time.ToString();
                MainWindow.Instance.pos2_form.Text = Sostoyanie;
                MainWindow.Instance.position_form.Text = Position.ToString();
            });

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;, то торможение и зависание остается, но ошибка вроде не выскакивает. &lt;br /&gt;Но как это может влиять, если добавление на форму идет только после окончания 15мин свечек.  В тестерах на старых версиях у меня после каждого тика выводилась подобная инфа и никаких ошибок не возникало. </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23309/</id>
    <title type="text">Похоже это вы базу данных дрючите не по-детски. В базу данных у меня только сохраняются сделки, а их...</title>
    <published>2013-01-11T11:52:44Z</published>
    <updated>2013-01-11T11:52:44Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</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;Похоже это вы базу данных дрючите не по-детски.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;В базу данных у меня только сохраняются сделки, а их всего штук 500 в год. &lt;br /&gt;&lt;br /&gt;Сейчас попробовал SampleHystoryTesting, только изменил инструмент на Si и путь к истории по нему.  Ошибка не выскочила, но торможение очень сильное. Тест идет максимум месяц с торможениями, залипаниями секунд на 5-10 и потом окончательно виснет.  &lt;br /&gt;&lt;br /&gt;Прикрепляю миним. проект, на котором воспроизводится ошибка. При старте теста график эквити обновляется рывками раз в 5-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/23307/</id>
    <title type="text">Нет, взял SampleHystoryTesting, пара стандартных индикаторов, простые условия для входов и выходов. ...</title>
    <published>2013-01-11T10:38:57Z</published>
    <updated>2013-01-11T10:38:57Z</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/23303/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Нет, взял SampleHystoryTesting, пара стандартных индикаторов, простые условия для входов и выходов. &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.ru/posts/m/23305/</id>
    <title type="text">Похоже это вы базу данных дрючите не по-детски.</title>
    <published>2013-01-11T10:35:11Z</published>
    <updated>2013-01-11T10:35:11Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Похоже это вы базу данных дрючите не по-детски.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23303/</id>
    <title type="text">Нет, взял SampleHystoryTesting, пара стандартных индикаторов, простые условия для входов и выходов. </title>
    <published>2013-01-11T09:53:14Z</published>
    <updated>2013-01-11T09:53:14Z</updated>
    <author>
      <name>profts</name>
      <uri>https://stocksharp.ru/users/6174/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Нет, взял SampleHystoryTesting, пара стандартных индикаторов, простые условия для входов и выходов. </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23301/</id>
    <title type="text">С тестирование на тиках так и не разобрался из-за переполнения индикаторов... Пришлось тестировать н...</title>
    <published>2013-01-11T09:35:33Z</published>
    <updated>2013-01-11T09:51:24Z</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;Тестировал свои стратегии на старых версиях S#.  Все было отлично.  Решил полностью перейти на 4.1.6. Набросал простенькую стратегию на 15мин свечках. Шаблон взял полностью из SampleHistoryTesting. Свечки не рисую.&lt;br /&gt;Начинается тест, первые два дня эквити рисуется достаточно быстро, потом начинает обновляться с интервалом секунд в 5 и в итоге форма вообще зависает, через минуту выскакивает это исключение:&lt;br /&gt;&lt;a href='http://gyazo.com/33487bf9f0488b3202765aa81a7b97c0' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://gyazo.com/33487bf9f0488b3202765aa81a7b97c0" style='max-width: 600px;' alt="Ошибка" title="Ошибка" /&gt;&lt;/a&gt;&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:plain"&gt;


 protected override void OnStarted()
        {
            //vcon.Open();
            CommissionRule commissionRule = new CommissionRule { Type = CommissionTypes.PerTradeVolume, Value = new Unit(3m) };
            _commissionManager.Rules.Add(commissionRule);
           
            Sostoyanie = &amp;quot;кэш&amp;quot;;
           
            takeprofit  = decimal.Parse(MainWindow.Instance.takeprofit_form.Text);
            proskalz = decimal.Parse(MainWindow.Instance.proskalz.Text);
            vol_kontr = decimal.Parse(MainWindow.Instance.vol_lotov.Text);
            vcon.Open();
           
            // Создание элемента графика представляющего свечки
            _candlesElem = new ChartCandleElement();
            MainWindow.Instance._area.Elements.Add(_candlesElem);

            //MainWindow.Instance._area_ind.Elements.Add(_longMaElem);
            //MainWindow.Instance._area_ind.Elements.Add(_shortMaElem);

         
            this
                .WhenNewMyTrades()
                .Do(ProcessNewTrades)
                .Apply(this);

            _series
                .WhenCandlesFinished()
                .Do(ProcessCandle)
                .Apply(this);
            
            base.OnStarted();
        }

             
        private void ProcessCandle(Candle candle)
        {

          //  if (candle.State == CandleStates.Finished) MainWindow.Instance.GuiAsync(() =&amp;gt; MainWindow.Instance.Chart.ProcessCandle(_candlesElem, candle));
            Indicator.Process(candle.ClosePrice);
            
            MainWindow.Instance.GuiAsync(() =&amp;gt;
            {
                MainWindow.Instance.trades_time.Text = Security.LastTrade.Time.ToString();
                MainWindow.Instance.pos2_form.Text = Sostoyanie;
                MainWindow.Instance.position_form.Text = Position.ToString();
            });

         
            if (!START)
            {
                if (Indicator.Container.Count &amp;gt; 2)
                {
                    START = true;
                    Security
               .WhenNewTrades()
               .Do(ProcessNewTrade)
               .Apply(this);

                }
            }

        }

        private void Comission_raschet()
        {
            comission = 0;
            foreach (MyTrade trade in MyTrades)
            {
                comission = comission + _commissionManager.ProcessMyTrade(trade);
            }
            //MainWindow.Instance.GuiAsync(() =&amp;gt;
            //{
            //    MainWindow.Instance.comission_form.Text = comission.ToString();
            //});
        }
       
        private void ProcessNewTrade()
        {
            if (Security.LastTrade == null)
            { goto propusk2; }

            if (Security.LastTrade.Time.Hour == 19 &amp;amp;&amp;amp; Security.LastTrade.Time.Minute == 0 &amp;amp;&amp;amp; Security.LastTrade.Time.Second &amp;lt; 10)
            { goto propusk2; }

            switch (Sostoyanie)
            {
                case &amp;quot;кэш&amp;quot;:
                    {
                        if (...)
                        {
                            Sostoyanie = &amp;quot;Long&amp;quot;;
                            Buy_Order(vol_kontr);
                        }
                        else if (...)
                        {
                            Sostoyanie = &amp;quot;Short&amp;quot;;
                            Sell_Order(vol_kontr);
                        }
                    }
                    break;
                case &amp;quot;Long&amp;quot;:
                    {
                        if (...)
                        {
                            Sostoyanie = &amp;quot;кэш&amp;quot;;
                            Sell_Order(vol_kontr);
                        }
                    }
                    break;
                case &amp;quot;Short&amp;quot;:
                    {
                        if (...)
                        {
                            Sostoyanie = &amp;quot;кэш&amp;quot;;
                            Buy_Order(vol_kontr);
                        }
                    }
                    break;
            }

        propusk2:
    
            //MainWindow.Instance.GuiAsync(() =&amp;gt;
            //{

            //    MainWindow.Instance.trades_time.Text = Security.LastTrade.Time.ToString();
            //    //MainWindow.Instance.now_time.Text = DateTime.Now.ToString();
            //    MainWindow.Instance.pos2_form.Text = pos;
            //    MainWindow.Instance.position_form.Text = Position.ToString();
            //    MainWindow.Instance.komiss_form.Text = comission.ToString();
               
            //});

        }

        private void Buy_Order(decimal volume)
        {

            EntryPrice = Security.LastTrade.Price; ;

            this.AddInfoLog(&amp;quot;Сигнал на покупку&amp;quot;);
            nomersdelki++;
            order_open_long = this.CreateOrder(OrderDirections.Buy, Security.LastTrade.Price + proskalz, volume);
            order_open_long.Security = Security;
            this.RegisterOrder(order_open_long);
            order_open_long
                                .WhenMatched()
                                .Do(pos_change_long)
                                .Apply(this);

            this.AddInfoLog(PnLManager.PnL.ToString());
            //string vsql = string.Format(&amp;quot;insert into Rez2 (nomer_sdelki, data_vxoda,vremya_vxoda, cena_vxoda, High, Low,stop_price) Values ({0}, {1}, {2}, {3}, {4}, {5}, {6})&amp;quot;,
            //          (nomersdelki), (Security.LastTrade.Time.ToString(&amp;quot;dd.MM&amp;quot;)), (Security.LastTrade.Time.ToString(&amp;quot;HH.mmss&amp;quot;)), (order_open_long.Price.ToString()), (candle_high),(candle_low),(stop_price));


            //OleDbCommand vcom = new OleDbCommand(vsql, vcon);
            //vcom.ExecuteNonQuery();
        }


        private void Sell_Order(decimal volume)
        {
            EntryPrice = Security.LastTrade.Price;
            this.AddInfoLog(&amp;quot;Сигнал на продажу&amp;quot;);
            nomersdelki++;
            order_open_short = this.CreateOrder(OrderDirections.Sell, Security.LastTrade.Price - proskalz, volume);
            order_open_short.Security = Security;

            this.RegisterOrder(order_open_short);
            order_open_short
                                .WhenMatched()
                                .Do(pos_change_short)
                                .Apply(this);
            //string vsql = string.Format(&amp;quot;insert into Rez2 (nomer_sdelki, data_vxoda,vremya_vxoda, cena_vxoda, High, Low,stop_price) Values ({0}, {1}, {2}, {3}, {4}, {5}, {6})&amp;quot;,
            //          (nomersdelki), (Security.LastTrade.Time.ToString(&amp;quot;dd.MM&amp;quot;)), (Security.LastTrade.Time.ToString(&amp;quot;HH.mmss&amp;quot;)), (order_open_long.Price.ToString()), (candle_high), (candle_low), (stop_price));
            //OleDbCommand vcom = new OleDbCommand(vsql, vcon);
            //vcom.ExecuteNonQuery();
        }


&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23302/</id>
    <title type="text">Весь проект прикрепите. У вас где-то ком используется?</title>
    <published>2013-01-11T09:39:05Z</published>
    <updated>2013-01-11T09:39:05Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Весь проект прикрепите. У вас где-то ком используется?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>