﻿<?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/2807/pravilo-kotoroe-proveryaet-uslovie-s-opredelennym-ontervalom/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-27T13:54:16Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=2807" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/19970/</id>
    <title type="text">Так тоже можно, но менее читабельно =) Зато правило на 50 строчек писать не нужно)))</title>
    <published>2012-06-21T14:55:24Z</published>
    <updated>2012-06-21T14:55:24Z</updated>
    <author>
      <name>Кот Матроскин</name>
      <uri>https://stocksharp.com/users/808/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;InsiderHSE &lt;a href="https://stocksharp.com/posts/m/19967/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Так тоже можно, но менее читабельно =)&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Зато правило на 50 строчек писать не нужно)))</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19967/</id>
    <title type="text">Как это никак? А WhenIntervalElapsed чем не устраивает? :) Оно активируется по истечении определенны...</title>
    <published>2012-06-21T14:27:58Z</published>
    <updated>2012-06-21T14:27:58Z</updated>
    <author>
      <name>InsiderHSE</name>
      <uri>https://stocksharp.com/users/6099/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Кот Матроскин &lt;a href="https://stocksharp.com/posts/m/19964/" 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;InsiderHSE &lt;a href="https://stocksharp.com/posts/m/19959/" 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;Alexander Mukhanchikov &lt;a href="https://stocksharp.com/posts/m/19955/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Как это никак? А WhenIntervalElapsed чем не устраивает? :)&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Оно активируется по истечении определенных промежутков времени и вызывает Do. А нужно, чтобы Do вызывался только если условие верно... &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;А если прямо в Do влепить проверку на это условие?&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;
if(условие)
{
   действия
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Так тоже можно, но менее читабельно =)</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19964/</id>
    <title type="text">Как это никак? А WhenIntervalElapsed чем не устраивает? :) Оно активируется по истечении определенны...</title>
    <published>2012-06-21T13:59:30Z</published>
    <updated>2012-06-21T13:59:44Z</updated>
    <author>
      <name>Кот Матроскин</name>
      <uri>https://stocksharp.com/users/808/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;InsiderHSE &lt;a href="https://stocksharp.com/posts/m/19959/" 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;Alexander Mukhanchikov &lt;a href="https://stocksharp.com/posts/m/19955/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Как это никак? А WhenIntervalElapsed чем не устраивает? :)&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Оно активируется по истечении определенных промежутков времени и вызывает Do. А нужно, чтобы Do вызывался только если условие верно... &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;А если прямо в Do влепить проверку на это условие?&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;
if(условие)
{
   действия
}&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/19960/</id>
    <title type="text">Да, тогда сори. Верно, надо свой правило писать.</title>
    <published>2012-06-21T13:45:13Z</published>
    <updated>2012-06-21T13:45:13Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Да, тогда сори. Верно, надо свой правило писать.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19959/</id>
    <title type="text">Как это никак? А WhenIntervalElapsed чем не устраивает? :) Оно активируется по истечении определенны...</title>
    <published>2012-06-21T13:43:42Z</published>
    <updated>2012-06-21T13:43:42Z</updated>
    <author>
      <name>InsiderHSE</name>
      <uri>https://stocksharp.com/users/6099/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.com/posts/m/19955/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Как это никак? А WhenIntervalElapsed чем не устраивает? :)&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Оно активируется по истечении определенных промежутков времени и вызывает Do. А нужно, чтобы Do вызывался только если условие верно... </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19955/</id>
    <title type="text">Как это никак? А WhenIntervalElapsed чем не устраивает? :)</title>
    <published>2012-06-21T13:13:48Z</published>
    <updated>2012-06-21T13:13:48Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Как это никак? А WhenIntervalElapsed чем не устраивает? :)</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19948/</id>
    <title type="text">Никак. Писать свое правило. Вот как пример класса, с нужным правилом. internal static class Rules { ...</title>
    <published>2012-06-21T11:05:44Z</published>
    <updated>2012-06-21T11:05:44Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.com/users/5973/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Никак. Писать свое правило.&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;

    internal static class Rules
    {
        public static StrategyRule&amp;lt;ITrader&amp;gt; WhenTimeToCheck(this Strategy strategy, Func&amp;lt;bool&amp;gt; condition, TimeSpan interval)
        {
            if (strategy == null)
            {
                throw new ArgumentNullException(&amp;quot;strategy&amp;quot;);
            }
            return new TimeToCheckRule(strategy.Trader, condition, interval);
        }

        private sealed class TimeToCheckRule : StrategyRule&amp;lt;ITrader&amp;gt;
        {
            private readonly MarketTimer _marketTimer;
            private readonly ITrader _trader;
            private readonly Func&amp;lt;bool&amp;gt; _condition;
            private readonly TimeSpan _interval;

            public TimeToCheckRule(ITrader trader, Func&amp;lt;bool&amp;gt; condition, TimeSpan interval)
            {
                if (trader == null) throw new ArgumentNullException(&amp;quot;trader&amp;quot;);
                if (condition == null) throw new ArgumentNullException(&amp;quot;condition&amp;quot;);

                _trader = trader;
                _condition = condition;
                _interval = interval;

                Name = &amp;quot;Интервал условие &amp;quot; + interval;

                _marketTimer = new MarketTimer(_trader, Activator).Interval(interval).Start();
            }

            private void Activator(MarketTimer marketTimer, bool flag)
            {
                if (flag)
                {
                    marketTimer.FirstTime(_trader.MarketTime + _interval);
                }
                else if (_condition.Invoke())
                {
                    Activate(_trader);
                }
            }

            protected override void DisposeManaged()
            {
                _marketTimer.Dispose();
                base.DisposeManaged();
            }
        }
    }
&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/19946/</id>
    <title type="text">В прошлых версиях было так: .When(() =&amp;gt; a == b, TimeSpan.FromSeconds(1)).Do... Как теперь создать та...</title>
    <published>2012-06-21T10:44:54Z</published>
    <updated>2012-06-21T10:44:54Z</updated>
    <author>
      <name>InsiderHSE</name>
      <uri>https://stocksharp.com/users/6099/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">В прошлых версиях было так:&lt;br /&gt;.When(() =&amp;gt; a == b, TimeSpan.FromSeconds(1)).Do...&lt;br /&gt;Как теперь создать такое же правило?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>