﻿<?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/1510/kotirovanie-ubivaet-strategiyu/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-12T07:23:20Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1510" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/7439/</id>
    <title type="text">sklementiev: локальная переменная внутри OnNewMyTrades хэндлера Без минимального кода не понять. </title>
    <published>2011-04-14T19:34:34Z</published>
    <updated>2011-04-14T19:34:34Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7435)" rel="nofollow" target="_blank"&gt;sklementiev&lt;/a&gt;:&lt;/strong&gt;
локальная переменная внутри OnNewMyTrades хэндлера&lt;/p&gt;
&lt;/blockquote&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/7435/</id>
    <title type="text">Mikhail Sukhov: sklementiev: Mikhail Sukhov: Ошибка стабильная? Можно ее выслать с кодом? Ошибка спо...</title>
    <published>2011-04-14T17:02:17Z</published>
    <updated>2011-04-14T17:02:17Z</updated>
    <author>
      <name>sklementiev</name>
      <uri>https://stocksharp.ru/users/27969/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7428)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7427)" rel="nofollow" target="_blank"&gt;sklementiev&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7420)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Ошибка стабильная? Можно ее выслать с кодом?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ошибка спорадическая. :(
Очень похоже что два потока пытаются одновременно читать-менять коллекцию&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;batch переменная на каком уровне?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;локальная переменная внутри OnNewMyTrades хэндлера&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/7428/</id>
    <title type="text">sklementiev: Mikhail Sukhov: Ошибка стабильная? Можно ее выслать с кодом? Ошибка спорадическая. :( О...</title>
    <published>2011-04-14T06:32:32Z</published>
    <updated>2011-04-14T06:32:32Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7427)" rel="nofollow" target="_blank"&gt;sklementiev&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7420)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Ошибка стабильная? Можно ее выслать с кодом?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ошибка спорадическая. :(
Очень похоже что два потока пытаются одновременно читать-менять коллекцию&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;batch переменная на каком уровне?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/7427/</id>
    <title type="text">Mikhail Sukhov: Ошибка стабильная? Можно ее выслать с кодом? Ошибка спорадическая. :( Очень похоже ч...</title>
    <published>2011-04-14T05:30:01Z</published>
    <updated>2011-04-14T05:30:01Z</updated>
    <author>
      <name>sklementiev</name>
      <uri>https://stocksharp.ru/users/27969/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7420)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Ошибка стабильная? Можно ее выслать с кодом?&lt;/p&gt;
&lt;/blockquote&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/7420/</id>
    <title type="text">Ошибка стабильная? Можно ее выслать с кодом? </title>
    <published>2011-04-13T15:15:45Z</published>
    <updated>2011-04-13T15:15:45Z</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;Ошибка стабильная? Можно ее выслать с кодом?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/7418/</id>
    <title type="text">Mikhail Sukhov: sklementiev: подозреваю, что большинство народа который запускает дочерние стратегии...</title>
    <published>2011-04-13T14:22:17Z</published>
    <updated>2011-04-13T14:22:17Z</updated>
    <author>
      <name>sklementiev</name>
      <uri>https://stocksharp.ru/users/27969/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7413)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7410)" rel="nofollow" target="_blank"&gt;sklementiev&lt;/a&gt;:&lt;/strong&gt;
подозреваю, что большинство народа который запускает дочерние стратегии по торговому сигналу (например котирование) делают так же и имеют массу мертвых стрaтегий в памяти
(aka memory leak)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;После отработки они удаляются.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Понял, это было не очевидно&lt;/p&gt;
&lt;p&gt;Возвращаясь к первоначальной проблеме, не смог найти причину
Вот отрывки кода&lt;/p&gt;
&lt;p&gt;котирование
var price = Security.GetMarketPrice(direction);
TargetOrder = CreateOrder(direction, price, Volume);
Quoter = new MarketQuotingStrategy(TargetOrder, new Unit(), new Unit())
;
ChildStrategies.Clear();
ChildStrategies.Add(Quoter);&lt;/p&gt;
&lt;p&gt;и код внутри OnNewMyTrades&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        batch.ChildStrategies.AddRange(trades.Select(t =&amp;gt;
        {
            var s = new BatchStrategy(BatchFinishModes.First) { IsParallel = true };

            var takeProfit = new TakeProfitStrategy(t, takeProfitPoints) { IsForts = true };

            var stopLoss = new StopLossStrategy(t, stopLossPoints) { IsForts = true };

            takeProfit.IsParallel = stopLoss.IsParallel = true;

            s.ChildStrategies.Add(takeProfit);
            s.ChildStrategies.Add(stopLoss);
            return s;
        }));

        ChildStrategies.Add(batch);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;как видишь код взят из примеров&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/7413/</id>
    <title type="text">sklementiev: подозреваю, что большинство народа который запускает дочерние стратегии по торговому си...</title>
    <published>2011-04-13T09:03:28Z</published>
    <updated>2011-04-13T09:03:28Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7410)" rel="nofollow" target="_blank"&gt;sklementiev&lt;/a&gt;:&lt;/strong&gt;
подозреваю, что большинство народа который запускает дочерние стратегии по торговому сигналу (например котирование) делают так же и имеют массу мертвых стрaтегий в памяти
(aka memory leak)&lt;/p&gt;
&lt;/blockquote&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/7410/</id>
    <title type="text">Mikhail Sukhov: Может привести участки кода, где работаете со свойством Strategy.ChildStrategies? хм...</title>
    <published>2011-04-13T01:24:56Z</published>
    <updated>2011-04-13T01:26:10Z</updated>
    <author>
      <name>sklementiev</name>
      <uri>https://stocksharp.ru/users/27969/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7404)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Может привести участки кода, где работаете со свойством Strategy.ChildStrategies?
хм... после перечитывания лога и танцев с бубном понял что это видимо моя ошибка - исключение генерится в корневой стратегии
буду разбираться&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;немного не в тему, но все же - заметил что везде в доках мы только добавляем дочерние стратегии и никогда не чистим коллекцию ChildStrategies
подозреваю, что большинство народа который запускает дочерние стратегии по торговому сигналу (например котирование) делают так же и имеют массу мертвых стрaтегий в памяти
(aka memory leak)&lt;/p&gt;
&lt;p&gt;было бы неплохо сказать об этом в доках&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/7404/</id>
    <title type="text">Может привести участки кода, где работаете со свойством Strategy.ChildStrategies? </title>
    <published>2011-04-12T16:00:15Z</published>
    <updated>2011-04-12T16:00:15Z</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;Может привести участки кода, где работаете со свойством Strategy.ChildStrategies?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/7401/</id>
    <title type="text">Использую стандартный код из примеров по котированию,тейк профиту и стоп лоссу в логе имеем EIS_01:0...</title>
    <published>2011-04-12T12:08:21Z</published>
    <updated>2011-04-12T12:08:21Z</updated>
    <author>
      <name>sklementiev</name>
      <uri>https://stocksharp.ru/users/27969/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Использую стандартный код из примеров по котированию,тейк профиту и стоп лоссу&lt;/p&gt;
&lt;p&gt;в логе имеем&lt;/p&gt;
&lt;p&gt;EIS_01:00:05 15:44:45.5952531 Стратегия запущена.
MQS 15:51:16.2822579 Стратегия запущена.
MQS 15:51:17.1258459 Регистрация новой заявки на Sell с ценой 202940 и объемом 1.
MQS 15:51:17.7038599 Заявка 56596292 на Sell отправлена с ценой 202940 объемом 1.
MQS 15:51:22.7341439 Цена текущей 202940 и лучшей 202930.
MQS 15:51:22.7341439 Котирование заявки 56596292 на Sell с ценой 202940 объемом 1.
BS 15:51:24.4213199 Стратегия запущена.
BS 15:51:24.4213199 Стратегия запущена.
TPS 15:51:24.4213199 Стратегия запущена.
SLS 15:51:24.4213199 Стратегия запущена.
MQS 15:51:24.4213199 Перекотирование зарегистрировано для заявки 56596293 на Sell с ценой 202930 объемом 1.
EIS_01:00:05 15:51:27.2176579 System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Collections.Generic.List&lt;code&gt;1.Enumerator.MoveNextRare() at System.Collections.Generic.List&lt;/code&gt;1.Enumerator.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator&lt;code&gt;1.MoveNext() at Ecng.Collections.CollectionHelper.ForEach(IEnumerable&lt;/code&gt;1 source, Action&lt;code&gt;1 action) at Ecng.Trading.Algo.Strategies.Strategy.#=qHRMcFvqXR6j1q2Pr47dle9WfGbTEUreeM3kX0H1_iFw=.#=qOGzxZJdfi6loaGsGVxccBNBAIRdJXv0lLePvgsj7dig=(IStrategyChildStrategyList #=qrDB7Xd_Rb1RSIq0SI7l3XA==) at Ecng.Collections.CollectionHelper.SyncGet[TCollection,TResult](TCollection collection, Func&lt;/code&gt;2 func)
at Ecng.Trading.Algo.Strategies.Strategy.#=qzh$zLa7ho1TkxaD0haVAuU8l0ywEYoKg8dEBpjVnC6k=(DateTime #=qKCPgKC6dqIek9OjPJFhtfw==)
at Ecng.Trading.Algo.Strategies.Strategy.#=qnMN_PMdUfHysEK$_tfQ8grn_QTjzOIMGPiv$tYCH2Bw=.#=q3rD2zIrUx4ViUbhRH66B2w==()
EIS_01:00:05 15:51:27.2176579 Стратегия останавливается.
MQS 15:51:27.2176579 Стратегия останавливается.
BS 15:51:27.2176579 Стратегия останавливается.
BS 15:51:27.2176579 Стратегия останавливается.
TPS 15:51:27.2176579 Стратегия останавливается.
SLS 15:51:27.2176579 Стратегия останавливается.
MQS 15:51:27.7175619 Стратегия остановлена.
TPS 15:51:27.7175619 Котирование закончилось.
TPS 15:51:27.7175619 Стратегия остановлена.
SLS 15:51:27.7175619 Котирование закончилось.
SLS 15:51:27.7175619 Стратегия остановлена.
BS 15:51:27.9675139 Стратегия остановлена.
BS 15:51:27.9675139 Стратегия остановлена.&lt;/p&gt;
&lt;p&gt;То есть перекотирование эффектно убивает все дочерние стратегии
все это выглядит как злобный баг...
Михаил?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>