﻿<?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/1244/ostanovka-strategii/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-30T09:35:40Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1244" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/4724/</id>
    <title type="text">Превеликое спасибо))) Вот я и получил свою порцию знаний)</title>
    <published>2010-11-22T16:39:12Z</published>
    <updated>2010-11-22T16:39:12Z</updated>
    <author>
      <name>Serg</name>
      <uri>https://stocksharp.ru/users/484/</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/4722/</id>
    <title type="text"> Вроде бы все просто. Стратегия должна выполнять OnProcess раз в 100мс, в логгере я должен увидеть п...</title>
    <published>2010-11-22T16:30:21Z</published>
    <updated>2010-11-22T16:30:21Z</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;Serg&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Вроде бы все просто. Стратегия должна выполнять OnProcess раз в 100мс, в логгере я должен увидеть приблизительно 100 сообщений OnProcess и в течении 10 сек стратегия должна сама себя остановить. &lt;br /&gt;Спасибо&lt;/div&gt;&lt;/div&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;private sealed class TestStrategy : Strategy&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;private readonly bool _isAutoStop;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;public TestStrategy(bool isAutoStop)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_isAutoStop = isAutoStop;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;protected override StrategyProcessResults OnProcess()&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (base.ProcessState == StrategyProcessStates.Stopping)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;return StrategyProcessResults.Stop;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (this.TotalWorkingTime.Seconds &amp;gt; 10)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (_isAutoStop)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;return StrategyProcessResults.Stop;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;this.Stop();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;AddLog(StrategyErrorStates.Warning, &amp;quot;send stop&amp;quot;, this);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;AddLog(StrategyErrorStates.None, &amp;quot;OnProcess&amp;quot;, this);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;return StrategyProcessResults.Continue;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;protected override void OnRunned()&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;AddLog(StrategyErrorStates.None, &amp;quot;OnRunned&amp;quot;, this);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;base.OnRunned();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;protected override void OnRunning()&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;AddLog(StrategyErrorStates.None, &amp;quot;OnRunning&amp;quot;, this);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;base.OnRunning();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;protected override void OnStopped()&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;AddLog(StrategyErrorStates.None, &amp;quot;OnStopped&amp;quot;, this);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;base.OnStopped();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;protected override void OnStopping()&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;AddLog(StrategyErrorStates.None, &amp;quot;OnStopping&amp;quot;, this);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;base.OnStopping();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private sealed class StringStategyLogger : StrategyLogger&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;private readonly StringBuilder _builder = new StringBuilder();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;public string String&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;get { return _builder.ToString(); }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;public override void WriteMessage(Strategy strategy, StrategyErrorStates state, string message)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_builder.Append(message);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;#91;TestMethod&amp;#93;&lt;br /&gt;public void ManualStartStop()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;StartStop(false);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;#91;TestMethod&amp;#93;&lt;br /&gt;public void AutoStartStop()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;StartStop(true);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private static void StartStop(bool isAuto)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;var st = new TestStrategy(isAuto);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;var logger = new StringStategyLogger();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;logger.Strategies.Add(st);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;var manager = new StrategyManager(Helper.CreateTestTrader());&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;st.Interval = TimeSpan.FromSeconds(0.1);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;manager.Register(st, Helper.CreatePortfolio(), Helper.CreateSecurity());&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;st.Start();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;Thread.Sleep(TimeSpan.FromSeconds(20));&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;var str = logger.String;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;Assert.IsTrue(str.Contains(&amp;quot;OnRunned&amp;quot;));&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;Assert.IsTrue(str.Contains(&amp;quot;OnRunning&amp;quot;));&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;Assert.IsTrue(str.Contains(&amp;quot;OnStopped&amp;quot;));&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;Assert.IsTrue(str.Contains(&amp;quot;OnStopping&amp;quot;));&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;Assert.IsTrue(str.Contains(&amp;quot;OnProcess&amp;quot;));&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Все отработало как часики.&lt;br /&gt;&lt;br /&gt;Нашел особенность с StrategyManager. Его нужно создавать до подключения ITrader. В след. версии это исправлю и можно будет создавать когда угодно.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/4717/</id>
    <title type="text">Да и спасибо за http://stockmarketdotnet...m/2010/10/stock-25.html Алгоритмы Пункт 1. не сразу дошло...</title>
    <published>2010-11-22T14:11:30Z</published>
    <updated>2010-11-22T14:11:30Z</updated>
    <author>
      <name>Serg</name>
      <uri>https://stocksharp.ru/users/484/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Да и спасибо за &lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov&lt;/span&gt;&lt;div class="innerquote"&gt;http://stockmarketdotnet...m/2010/10/stock-25.html Алгоритмы Пункт 1.&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/4714/</id>
    <title type="text">Но как-то не все рвутся отвечать другим, чего не сказать наоборот, о вопросах. Да тоже заметил. Слож...</title>
    <published>2010-11-22T14:01:50Z</published>
    <updated>2010-11-22T14:01:50Z</updated>
    <author>
      <name>Serg</name>
      <uri>https://stocksharp.ru/users/484/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov&lt;/span&gt;&lt;div class="innerquote"&gt;Но как-то не все рвутся отвечать другим, чего не сказать наоборот, о вопросах.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Да тоже заметил. Сложно отвечать когда сам еще не разобрался до конца и задаешь глупые вопросы) &lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov&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 class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;    class ABC : Strategy&lt;br /&gt;    {&lt;br /&gt;        public ABC()&lt;br /&gt;            : base()&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected override StrategyProcessResults OnProcess()&lt;br /&gt;        {&lt;br /&gt;            if (base.ProcessState == StrategyProcessStates.Stopping)&lt;br /&gt;                return StrategyProcessResults.Stop;&lt;br /&gt;&lt;br /&gt;            if (this.TotalWorkingTime.Seconds &amp;gt; 10)&lt;br /&gt;            {&lt;br /&gt;                this.Stop();&lt;br /&gt;                AddLog(StrategyErrorStates.Warning, &amp;quot;send stop&amp;quot;, this);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            AddLog(StrategyErrorStates.None, &amp;quot;OnProcess&amp;quot;, this);&lt;br /&gt;            return StrategyProcessResults.Continue;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected override void OnRunned()&lt;br /&gt;        {&lt;br /&gt;            AddLog(StrategyErrorStates.None, &amp;quot;OnRunned&amp;quot;, this);&lt;br /&gt;            base.OnRunned();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected override void OnRunning()&lt;br /&gt;        {&lt;br /&gt;            AddLog(StrategyErrorStates.None, &amp;quot;OnRunning&amp;quot;, this);&lt;br /&gt;            base.OnRunning();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected override void OnStopped()&lt;br /&gt;        {&lt;br /&gt;            AddLog(StrategyErrorStates.None, &amp;quot;OnStopped&amp;quot;, this);&lt;br /&gt;            base.OnStopped();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected override void OnStopping()&lt;br /&gt;        {&lt;br /&gt;            AddLog(StrategyErrorStates.None, &amp;quot;OnStopping&amp;quot;, this);&lt;br /&gt;            base.OnStopping();&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;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;private void button5_Click(object sender, RoutedEventArgs e)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;Security m1 = sList.FirstOrDefault(s =&amp;gt; s.Code == &amp;quot;LKOH&amp;quot;);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;Portfolio p = pList.FirstOrDefault(i =&amp;gt; i.Name == &amp;quot;NL0011100043&amp;quot;);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;var st = new ABC();&lt;br /&gt;            gsl.Strategies.Add(st);&lt;br /&gt;            st.Interval = TimeSpan.FromSeconds(0.1);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;man.Register(st, p, m1);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;st.Start();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;это весь код не включая получения инструментов, портфелей и подключения к квику.&lt;br /&gt;В такой реализации OnProcess у меня ни разу не выполняется. &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;private void button6_Click(object sender, RoutedEventArgs e)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;foreach (var item in man.Strategies)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (item.Name == &amp;quot;ABC&amp;quot; || item.Name == &amp;quot;&amp;quot;)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;item.Stop();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;а вот весь лог GuiStrategyLogger&amp;#39;a: &lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;ABC 16:35:28 OnRunning&lt;br /&gt;ABC 16:35:29 Стратегия запущена&lt;br /&gt;ABC 16:35:29 OnRunned&lt;br /&gt;ABC 16:35:35 Стратегия останавливается.&lt;br /&gt;ABC 16:35:35 OnStopping&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Вроде бы все просто. Стратегия должна выполнять OnProcess раз в 100мс, в логгере я должен увидеть приблизительно 100 сообщений OnProcess и в течении 10 сек стратегия должна сама себя остановить. &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/4707/</id>
    <title type="text">Продолжаю тему)) По приведенному выше классу. Полная остановка стратегии не происходит( В логе вижу ...</title>
    <published>2010-11-22T12:55:11Z</published>
    <updated>2010-11-22T12:55:11Z</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;Serg&lt;/span&gt;&lt;div class="innerquote"&gt;Продолжаю тему)) &lt;br /&gt;По приведенному выше классу. Полная остановка стратегии не происходит( &lt;br /&gt;В логе вижу OnStopping но не вижу OnStopped. И также не вижу сообщения о том что стратегия остановилась. как это было ранее.&lt;br /&gt;Ктонить может подсказать это моя бага или S#?&lt;br /&gt;Спасибо.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Попробуйте бряку поставить в OnStopped.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Serg&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Михаилу по поводу проекта:&lt;br /&gt;Как я понимаю чем дальше тем сложнее поддерживать библиотеку, да и возможно вам это просто надоело уже. &lt;br /&gt;Но... не надо отчаиваться) Нас тут Уже много и я думаю многие могли и хотели бы помочь. Ждем ваших, Михаил, предложений...&lt;br /&gt;Возможно было бы не плохо сделать что-то типа wiki с элементарными примерами использования S# и возможностью пользователей дополнять ее примерами.&lt;br /&gt;Вот к примеру класс описанный мной выше... что в нем не так? &lt;br /&gt;Благодаря вышей библиотеке написал одного робота на версии 2.4 работает прекрасно но писал его под winforms и многим возможностями не пользовался.&lt;br /&gt;Сейчас хочу углубиться, сделать все на wpf чтобы воспользоваться всяческими мониторами стратегий и тд и тп но не могу получить желанный результат. Написав уже практически всю реализацию стратегии возвращаюсь в начало к таким вот элементарным примерам(возможно по глупости своей). Не разобравшись с основами нельзя сделать стабильно работающую систему((&lt;br /&gt;Еще раз спасибо. &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Стоило мне отдохнуть раз в выходные, как проект сразу надоел.[biggrin] Реальная помощь проекты на данный момент (до чего действительно сейчас руки редко доходят и в дальнейшем будет все сложнее) - это ответы на вопросы - что и как. Есть конечно и S# ошибки, но есть и те, на которые по силам ответить многим. Но как-то не все рвутся отвечать другим, чего не сказать наоборот, о вопросах.[glare] </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/4706/</id>
    <title type="text">Всем hi Подскажите плиз почему такая стратегия не останавливается? Как можно сделать так чтобы страт...</title>
    <published>2010-11-22T12:50:38Z</published>
    <updated>2010-11-22T12:50:38Z</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;Serg&lt;/span&gt;&lt;div class="innerquote"&gt;Всем hi&lt;br /&gt;&lt;br /&gt;Подскажите плиз почему такая стратегия не останавливается? &lt;br /&gt;Как можно сделать так чтобы стратегия сама себя остановила?&lt;br /&gt;Остановка происходит толька после вызова Stop() извне.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Что из вне, что снаружи - вызывается одно и тоже... Стратегия дочерняя? Имеет ли сама дочерние стратегии? Точку останова ставили внутрь OnProcess? Плюс, еще приведите как Вы снаружи останавливаете?&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Serg&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Попутный вопрос: Не вижу в Ecng.Trading.Algo класс FileStrategyLogger. Что-то изменилось?&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABSPcEqI0ATrgKHUCtM97F-JU-J5UfsNRSbDZHIf7GAKpDRLz87-CnP-S0Urax-IRTa75ERdRQj6HdJ1incbjuJ" title="http://stockmarketdotnet.blogspot.com/2010/10/stock-25.html "&gt;http://stockmarketdotnet...m/2010/10/stock-25.html &lt;/a&gt;Алгоритмы Пункт 1.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Serg&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Проблема как выяснилось тут в другом. OnProcess вообще не выполняется. &lt;br /&gt;Вот так происходит регистрация и запуск стратегии:&lt;br /&gt;        var st = new aaa();&lt;br /&gt;	st.Interval = TimeSpan.FromSeconds(0.1);&lt;br /&gt;	man.Register(st, p, m1);&lt;br /&gt;	st.Start();&lt;br /&gt;&lt;br /&gt;Но если добавить в OnRunned &lt;br /&gt;две строки вида: &lt;br /&gt;            Trader.QuotesChanged += new Action&amp;lt;IEnumerable&amp;lt;MarketDepth&amp;gt;&amp;gt;(Trader_QuotesChanged);&lt;br /&gt;            Trader.RegisterQuotes(this.Security);&lt;br /&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/4702/</id>
    <title type="text">Продолжаю тему)) По приведенному выше классу. Полная остановка стратегии не происходит( В логе вижу ...</title>
    <published>2010-11-22T10:29:06Z</published>
    <updated>2010-11-22T10:29:06Z</updated>
    <author>
      <name>Serg</name>
      <uri>https://stocksharp.ru/users/484/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Продолжаю тему)) &lt;br /&gt;По приведенному выше классу. Полная остановка стратегии не происходит( &lt;br /&gt;В логе вижу OnStopping но не вижу OnStopped. И также не вижу сообщения о том что стратегия остановилась. как это было ранее.&lt;br /&gt;Ктонить может подсказать это моя бага или S#?&lt;br /&gt;Спасибо.&lt;br /&gt;&lt;br /&gt;Михаилу по поводу проекта:&lt;br /&gt;Как я понимаю чем дальше тем сложнее поддерживать библиотеку, да и возможно вам это просто надоело уже. &lt;br /&gt;Но... не надо отчаиваться) Нас тут Уже много и я думаю многие могли и хотели бы помочь. Ждем ваших, Михаил, предложений...&lt;br /&gt;Возможно было бы не плохо сделать что-то типа wiki с элементарными примерами использования S# и возможностью пользователей дополнять ее примерами.&lt;br /&gt;Вот к примеру класс описанный мной выше... что в нем не так? &lt;br /&gt;Благодаря вышей библиотеке написал одного робота на версии 2.4 работает прекрасно но писал его под winforms и многим возможностями не пользовался.&lt;br /&gt;Сейчас хочу углубиться, сделать все на wpf чтобы воспользоваться всяческими мониторами стратегий и тд и тп но не могу получить желанный результат. Написав уже практически всю реализацию стратегии возвращаюсь в начало к таким вот элементарным примерам(возможно по глупости своей). Не разобравшись с основами нельзя сделать стабильно работающую систему((&lt;br /&gt;Еще раз спасибо. </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/4698/</id>
    <title type="text">Всем hi Не могу остановить вот такую стратегию: class aaa :Strategy { public aaa() : base() { } prot...</title>
    <published>2010-11-20T16:08:44Z</published>
    <updated>2010-11-20T17:51:45Z</updated>
    <author>
      <name>Serg</name>
      <uri>https://stocksharp.ru/users/484/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Всем hi&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;br /&gt;    class aaa :Strategy&lt;br /&gt;    {&lt;br /&gt;        public aaa()&lt;br /&gt;            : base()&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected override StrategyProcessResults OnProcess()&lt;br /&gt;        {&lt;br /&gt;            if (base.ProcessState == StrategyProcessStates.Stopping)&lt;br /&gt;                return StrategyProcessResults.Stop;&lt;br /&gt;            &lt;br /&gt;            if (this.TotalWorkingTime.Seconds &amp;gt; 10)&lt;br /&gt;                this.Stop();&lt;br /&gt;            AddLog(StrategyErrorStates.None, &amp;quot;OnProcess&amp;quot;, this);&lt;br /&gt;            return StrategyProcessResults.Continue;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected override void OnRunned()&lt;br /&gt;        {&lt;br /&gt;            AddLog(StrategyErrorStates.None, &amp;quot;OnRunned&amp;quot;, this);&lt;br /&gt;            base.OnRunned();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected override void OnRunning()&lt;br /&gt;        {&lt;br /&gt;            AddLog(StrategyErrorStates.None, &amp;quot;OnRunning&amp;quot;, this);&lt;br /&gt;            base.OnRunning();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected override void OnStopped()&lt;br /&gt;        {&lt;br /&gt;            AddLog(StrategyErrorStates.None, &amp;quot;OnStopped&amp;quot;, this);&lt;br /&gt;            base.OnStopped();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected override void OnStopping()&lt;br /&gt;        {&lt;br /&gt;            AddLog(StrategyErrorStates.None, &amp;quot;OnStopping&amp;quot;, this);&lt;br /&gt;            base.OnStopping();&lt;br /&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;Остановка происходит толька после вызова Stop() извне.&lt;br /&gt;&lt;br /&gt;Попутный вопрос: Не вижу в Ecng.Trading.Algo класс FileStrategyLogger. Что-то изменилось?&lt;br /&gt;&lt;br /&gt;Версия S# 2.5.2&lt;br /&gt;&lt;br /&gt;Спасибо.&lt;br /&gt;&lt;br /&gt;+++&lt;br /&gt;&lt;br /&gt;Проблема как выяснилось тут в другом. OnProcess вообще не выполняется. &lt;br /&gt;Вот так происходит регистрация и запуск стратегии:&lt;br /&gt;        var st = new aaa();&lt;br /&gt;	st.Interval = TimeSpan.FromSeconds(0.1);&lt;br /&gt;	man.Register(st, p, m1);&lt;br /&gt;	st.Start();&lt;br /&gt;&lt;br /&gt;Но если добавить в OnRunned &lt;br /&gt;две строки вида: &lt;br /&gt;            Trader.QuotesChanged += new Action&amp;lt;IEnumerable&amp;lt;MarketDepth&amp;gt;&amp;gt;(Trader_QuotesChanged);&lt;br /&gt;            Trader.RegisterQuotes(this.Security);&lt;br /&gt;все работает как часы</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>