﻿<?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-04-07T07:41:48Z</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"> локальная переменная внутри 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;div class="quote"&gt;&lt;span class="quotetitle"&gt;sklementiev &lt;a href="https://stocksharp.ru/posts/m/7435/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;локальная переменная внутри OnNewMyTrades хэндлера&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/7435/</id>
    <title type="text">Ошибка стабильная? Можно ее выслать с кодом? Ошибка спорадическая. :( Очень похоже что два потока пы...</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;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.ru/posts/m/7428/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;sklementiev &lt;a href="https://stocksharp.ru/posts/m/7427/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.ru/posts/m/7420/" 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;Ошибка спорадическая. :(&lt;br /&gt;Очень похоже что два потока пытаются одновременно читать-менять коллекцию &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;batch переменная на каком уровне?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;локальная переменная внутри OnNewMyTrades хэндлера&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/7428/</id>
    <title type="text">Ошибка стабильная? Можно ее выслать с кодом? Ошибка спорадическая. :( Очень похоже что два потока пы...</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;div class="quote"&gt;&lt;span class="quotetitle"&gt;sklementiev &lt;a href="https://stocksharp.ru/posts/m/7427/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.ru/posts/m/7420/" 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;Ошибка спорадическая. :(&lt;br /&gt;Очень похоже что два потока пытаются одновременно читать-менять коллекцию &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;batch переменная на каком уровне?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/7427/</id>
    <title type="text">Ошибка стабильная? Можно ее выслать с кодом? Ошибка спорадическая. :( Очень похоже что два потока пы...</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;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.ru/posts/m/7420/" 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;Ошибка спорадическая. :(&lt;br /&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">Ошибка стабильная? Можно ее выслать с кодом?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/7418/</id>
    <title type="text"> подозреваю, что большинство народа который запускает дочерние стратегии по торговому сигналу (напри...</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;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.ru/posts/m/7413/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;sklementiev &lt;a href="https://stocksharp.ru/posts/m/7410/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;подозреваю, что большинство народа который запускает дочерние стратегии по торговому сигналу (например котирование) делают так же и имеют массу мертвых стрaтегий в памяти&lt;br /&gt;(aka memory leak)&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;После отработки они удаляются.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Понял, это было не очевидно&lt;br /&gt;&lt;br /&gt;Возвращаясь к первоначальной проблеме, не смог найти причину&lt;br /&gt;Вот отрывки кода&lt;br /&gt;&lt;br /&gt;котирование&lt;br /&gt;            var price = Security.GetMarketPrice(direction);&lt;br /&gt;            TargetOrder = CreateOrder(direction, price, Volume);&lt;br /&gt;            Quoter = new MarketQuotingStrategy(TargetOrder, new Unit(), new Unit())&lt;br /&gt;            {&lt;br /&gt;                IsForts = true&lt;br /&gt;            };&lt;br /&gt;            ChildStrategies.Clear();&lt;br /&gt;            ChildStrategies.Add(Quoter);&lt;br /&gt;&lt;br /&gt;и код внутри OnNewMyTrades&lt;br /&gt;&lt;br /&gt;            batch.ChildStrategies.AddRange(trades.Select(t =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                var s = new BatchStrategy(BatchFinishModes.First) { IsParallel = true };&lt;br /&gt;&lt;br /&gt;                var takeProfit = new TakeProfitStrategy(t, takeProfitPoints) { IsForts = true };&lt;br /&gt;&lt;br /&gt;                var stopLoss = new StopLossStrategy(t, stopLossPoints) { IsForts = true };&lt;br /&gt;&lt;br /&gt;                takeProfit.IsParallel = stopLoss.IsParallel = true;&lt;br /&gt;&lt;br /&gt;                s.ChildStrategies.Add(takeProfit);&lt;br /&gt;                s.ChildStrategies.Add(stopLoss);&lt;br /&gt;                return s;&lt;br /&gt;            }));&lt;br /&gt;&lt;br /&gt;            ChildStrategies.Add(batch);&lt;br /&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/7413/</id>
    <title type="text"> подозреваю, что большинство народа который запускает дочерние стратегии по торговому сигналу (напри...</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;div class="quote"&gt;&lt;span class="quotetitle"&gt;sklementiev &lt;a href="https://stocksharp.ru/posts/m/7410/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;подозреваю, что большинство народа который запускает дочерние стратегии по торговому сигналу (например котирование) делают так же и имеют массу мертвых стрaтегий в памяти&lt;br /&gt;(aka memory leak)&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/7410/</id>
    <title type="text">Может привести участки кода, где работаете со свойством 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;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.ru/posts/m/7404/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Может привести участки кода, где работаете со свойством Strategy.ChildStrategies?&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;хм... после перечитывания лога и танцев с бубном понял что это видимо моя ошибка - исключение генерится в корневой стратегии&lt;br /&gt;буду разбираться&lt;br /&gt;&lt;br /&gt;немного не в тему, но все же - заметил что везде в доках мы только добавляем дочерние стратегии и никогда не чистим коллекцию ChildStrategies&lt;br /&gt;подозреваю, что большинство народа который запускает дочерние стратегии по торговому сигналу (например котирование) делают так же и имеют массу мертвых стрaтегий в памяти&lt;br /&gt;(aka memory leak)&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/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">Может привести участки кода, где работаете со свойством Strategy.ChildStrategies?&lt;br /&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;br /&gt;&lt;br /&gt;в логе имеем&lt;br /&gt;&lt;br /&gt;EIS_01:00:05 15:44:45.5952531 Стратегия запущена.&lt;br /&gt;MQS 15:51:16.2822579 Стратегия запущена.&lt;br /&gt;MQS 15:51:17.1258459 Регистрация новой заявки на Sell с ценой 202940 и объемом 1.&lt;br /&gt;MQS 15:51:17.7038599 Заявка 56596292 на Sell отправлена с ценой 202940 объемом 1.&lt;br /&gt;MQS 15:51:22.7341439 Цена текущей 202940 и лучшей 202930.&lt;br /&gt;MQS 15:51:22.7341439 Котирование заявки 56596292 на Sell с ценой 202940 объемом 1.&lt;br /&gt;BS 15:51:24.4213199 Стратегия запущена.&lt;br /&gt;BS 15:51:24.4213199 Стратегия запущена.&lt;br /&gt;TPS 15:51:24.4213199 Стратегия запущена.&lt;br /&gt;SLS 15:51:24.4213199 Стратегия запущена.&lt;br /&gt;MQS 15:51:24.4213199 Перекотирование зарегистрировано для заявки 56596293 на Sell с ценой 202930 объемом 1.&lt;br /&gt;EIS_01:00:05 15:51:27.2176579 System.InvalidOperationException: Collection was modified; enumeration operation may not execute.&lt;br /&gt;   at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)&lt;br /&gt;   at System.Collections.Generic.List`1.Enumerator.MoveNextRare()&lt;br /&gt;   at System.Collections.Generic.List`1.Enumerator.MoveNext()&lt;br /&gt;   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()&lt;br /&gt;   at Ecng.Collections.CollectionHelper.ForEach[T](IEnumerable`1 source, Action`1 action)&lt;br /&gt;   at Ecng.Trading.Algo.Strategies.Strategy.#=qHRMcFvqXR6j1q2Pr47dle9WfGbTEUreeM3kX0H1_iFw=.#=qOGzxZJdfi6loaGsGVxccBNBAIRdJXv0lLePvgsj7dig=(IStrategyChildStrategyList #=qrDB7Xd_Rb1RSIq0SI7l3XA==)&lt;br /&gt;   at Ecng.Collections.CollectionHelper.SyncGet[TCollection,TResult](TCollection collection, Func`2 func)&lt;br /&gt;   at Ecng.Trading.Algo.Strategies.Strategy.#=qzh$zLa7ho1TkxaD0haVAuU8l0ywEYoKg8dEBpjVnC6k=(DateTime #=qKCPgKC6dqIek9OjPJFhtfw==)&lt;br /&gt;   at Ecng.Trading.Algo.Strategies.Strategy.#=qnMN_PMdUfHysEK$_tfQ8grn_QTjzOIMGPiv$tYCH2Bw=.#=q3rD2zIrUx4ViUbhRH66B2w==()&lt;br /&gt;EIS_01:00:05 15:51:27.2176579 Стратегия останавливается.&lt;br /&gt;MQS 15:51:27.2176579 Стратегия останавливается.&lt;br /&gt;BS 15:51:27.2176579 Стратегия останавливается.&lt;br /&gt;BS 15:51:27.2176579 Стратегия останавливается.&lt;br /&gt;TPS 15:51:27.2176579 Стратегия останавливается.&lt;br /&gt;SLS 15:51:27.2176579 Стратегия останавливается.&lt;br /&gt;MQS 15:51:27.7175619 Стратегия остановлена.&lt;br /&gt;TPS 15:51:27.7175619 Котирование закончилось.&lt;br /&gt;TPS 15:51:27.7175619 Стратегия остановлена.&lt;br /&gt;SLS 15:51:27.7175619 Котирование закончилось.&lt;br /&gt;SLS 15:51:27.7175619 Стратегия остановлена.&lt;br /&gt;BS 15:51:27.9675139 Стратегия остановлена.&lt;br /&gt;BS 15:51:27.9675139 Стратегия остановлена.&lt;br /&gt;&lt;br /&gt;То есть перекотирование эффектно убивает все дочерние стратегии&lt;br /&gt;все это выглядит как злобный баг...&lt;br /&gt;Михаил? </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>