﻿<?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">[normal] параллельная дочерняя стратегия не параллельна</title>
  <id>~/topic/1357/normal-parallelnaya-dochernyaya-strategiya-ne-parallelna/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-14T23:03:50Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1357" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/6977/</id>
    <title type="text">Greene-nsk: Проблема в том, что я не могу дождаться остановки. Она происходит только после того, как...</title>
    <published>2011-03-23T14:26:05Z</published>
    <updated>2011-03-23T14:26:05Z</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(5875)" rel="nofollow" target="_blank"&gt;Greene-nsk&lt;/a&gt;:&lt;/strong&gt;
Проблема в том, что я не могу дождаться остановки. Она происходит только после того, как OnProcess() главной стратегии отработает до конца. Это ошибка или по дизайну так задумано? Как можно эту ситуацию обойти?&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/5875/</id>
    <title type="text">Очень понравилась идея с дочерними стратегиями и достаточно элегантная реализация. Спасибо, Михаил. ...</title>
    <published>2011-02-11T14:47:41Z</published>
    <updated>2011-02-11T14:54:39Z</updated>
    <author>
      <name>Greene-nsk</name>
      <uri>https://stocksharp.ru/users/27932/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Очень понравилась идея с дочерними стратегиями  и достаточно элегантная реализация. Спасибо, Михаил.&lt;/p&gt;
&lt;p&gt;Наткнулся на небольшую проблему. Есть стратегия, производная от TimeFrameStrategy. В ней создаются две зависимые дочерние стратегии, которые помечаются как параллельные:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
protected override StrategyProcessResults OnProcess()
{
            // для каждого алерта добавляем по пакетной стратегии
            strategy_parent = new BatchStrategy(BatchFinishModes.First) { IsParallel = true };

            foreach (Alert alert in alerts)
            {
                var strategy_for_alert = new RegisterAlertToSmartStrategy(alert);
                strategy_for_alert.IsParallel = true;
                strategy_parent.ChildStrategies.Add(strategy_for_alert);
            }

            base.ChildStrategies.Add(strategy_parent);
}
-----------------------

class RegisterAlertToSmartStrategy : ActionStrategy
...


&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Дочерняя стратегия добавляется и запускается - все ОК. Затем на следующей итерации мне необходимо остановить эту дочернюю стратегию:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
        protected override StrategyProcessResults OnProcess()
        {
            ...
            strategy_parent.Stop();
            &amp;lt;дожидаемся остановки стратегии&amp;gt;
            &amp;lt;дальнейшие действия&amp;gt;
        }

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Проблема в том, что я не могу дождаться остановки. Она происходит только после того, как OnProcess() главной стратегии отработает до конца. Это ошибка или по дизайну так задумано? Как можно эту ситуацию обойти?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>