﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">События в стратегии</title>
  <id>~/topic/1699/sobytiya-v-strategii/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-30T03:33:13Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=1699" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/9274/</id>
    <title type="text">Добрый день! Решил разобраться с событийной моделью и заткнулся на первой же проблеме. Если происход...</title>
    <published>2011-07-03T12:28:24Z</published>
    <updated>2011-07-03T12:28:24Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;romanick &lt;a href="https://stocksharp.com/posts/m/9222/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Добрый день!&lt;br /&gt;Решил разобраться с событийной моделью и заткнулся на первой же проблеме.&lt;br /&gt;Если происходит ошибка при работе стратегии как узнать какая?&lt;br /&gt;&lt;br /&gt;Делаю своего наследника:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
public class RobotStrategy : Strategy&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;далее...&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
protected override void OnRunning()
{
// подписываемся на события
this.When(this.Error())
.Do(OnSysError)
.MakePeriodical();
...
}

void OnSysError()
{
   // какая ошибка???
}
&lt;/pre&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;this.Error отслеживает состояние свойства. Проще просто переопределить OnError.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9272/</id>
    <title type="text">Немного изменим вопрос: protected void Process() { //тут создаем BatchStrategy this .When(batch.Stop...</title>
    <published>2011-07-03T12:11:35Z</published>
    <updated>2011-07-03T12:11:35Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;esper &lt;a href="https://stocksharp.com/posts/m/9238/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Немного изменим вопрос:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

protected void Process()
{
	//тут создаем BatchStrategy

	this
		.When(batch.Stopped())
		.Do(BatchStopped);

	base.ChildStrategies.Add(batch);
}

private void BatchStopped()
{
	//как тут узнать какая стратегия завершилась?
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Остановка BatchStrategy:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
this
        .When(batch.Stopped())
        .Do&amp;lt;BatchStrategy&amp;gt;(BatchStopped);

private void BatchStopped(BatchStrategy str)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Начиная с версии 3.2.2 это работает.&lt;br /&gt;&lt;br /&gt;Если необходимо узнать про то какая конкретно стратегия из BatchStrategy вызвала остановку - добавили feature request.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9222/</id>
    <title type="text">Добрый день! Решил разобраться с событийной моделью и заткнулся на первой же проблеме. Если происход...</title>
    <published>2011-06-30T12:13:42Z</published>
    <updated>2011-07-03T11:58:28Z</updated>
    <author>
      <name>romanick</name>
      <uri>https://stocksharp.com/users/28047/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Добрый день!&lt;br /&gt;Решил разобраться с событийной моделью и заткнулся на первой же проблеме.&lt;br /&gt;Если происходит ошибка при работе стратегии как узнать какая?&lt;br /&gt;&lt;br /&gt;Делаю своего наследника:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
public class RobotStrategy : Strategy&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;далее...&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
protected override void OnRunning()
{
// подписываемся на события
this.When(this.Error())
.Do(OnSysError)
.MakePeriodical();
...
}

void OnSysError()
{
   // какая ошибка???
}
&lt;/pre&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.com/posts/m/9238/</id>
    <title type="text">Немного изменим вопрос: protected void Process() { //тут создаем BatchStrategy this .When(batch.Stop...</title>
    <published>2011-07-01T06:29:02Z</published>
    <updated>2011-07-01T06:29:02Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Немного изменим вопрос:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

protected void Process()
{
	//тут создаем BatchStrategy

	this
		.When(batch.Stopped())
		.Do(BatchStopped);

	base.ChildStrategies.Add(batch);
}

private void BatchStopped()
{
	//как тут узнать какая стратегия завершилась?
}&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.com/posts/m/9234/</id>
    <title type="text">Добрый день! Решил разобраться с событийной моделью и заткнулся на первой же проблеме. Если происход...</title>
    <published>2011-06-30T20:08:22Z</published>
    <updated>2011-06-30T20:08:22Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;romanick &lt;a href="https://stocksharp.com/posts/m/9222/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Добрый день!&lt;br /&gt;Решил разобраться с событийной моделью и заткнулся на первой же проблеме.&lt;br /&gt;Если происходит ошибка при работе стратегии как узнать какая?&lt;br /&gt;&lt;br /&gt;Делаю своего наследника:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
public class RobotStrategy : Strategy&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;далее...&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
protected override void OnRunning()
{
// подписываемся на события
this.When(this.Error())
.Do(OnSysError)
.MakePeriodical();
...
}

void OnSysError()
{
   // какая ошибка???
}
&lt;/pre&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;Это сообщение вы до этого вывели в лог. Данное правило срабатывает когда состояние переходит в StrategyErrorStates.Error.&lt;br /&gt;А это происходит если вызван метод AddErrorLog или AddLog(StrategyErrorStates.Error, ...)</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>