﻿<?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/2807/pravilo-kotoroe-proveryaet-uslovie-s-opredelennym-ontervalom/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-20T20:24:48Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=2807" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/19970/</id>
    <title type="text">InsiderHSE: Так тоже можно, но менее читабельно =) Зато правило на 50 строчек писать не нужно))) </title>
    <published>2012-06-21T14:55:24Z</published>
    <updated>2012-06-21T14:55:24Z</updated>
    <author>
      <name>Кот Матроскин</name>
      <uri>https://stocksharp.ru/users/808/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19967)" rel="nofollow" target="_blank"&gt;InsiderHSE&lt;/a&gt;:&lt;/strong&gt;
Так тоже можно, но менее читабельно =)
Зато правило на 50 строчек писать не нужно)))&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19967/</id>
    <title type="text">Кот Матроскин: InsiderHSE: Alexander Mukhanchikov: Как это никак? А WhenIntervalElapsed чем не устра...</title>
    <published>2012-06-21T14:27:58Z</published>
    <updated>2012-06-21T14:27:58Z</updated>
    <author>
      <name>InsiderHSE</name>
      <uri>https://stocksharp.ru/users/6099/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19964)" rel="nofollow" target="_blank"&gt;Кот Матроскин&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19959)" rel="nofollow" target="_blank"&gt;InsiderHSE&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19955)" rel="nofollow" target="_blank"&gt;Alexander Mukhanchikov&lt;/a&gt;:&lt;/strong&gt;
Как это никак? А WhenIntervalElapsed чем не устраивает? :)
Оно активируется по истечении определенных промежутков времени и вызывает Do. А нужно, чтобы Do вызывался только если условие верно...
А если прямо в Do влепить проверку на это условие?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;if(условие)
{
действия
}&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Так тоже можно, но менее читабельно =)
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19964/</id>
    <title type="text">InsiderHSE: Alexander Mukhanchikov: Как это никак? А WhenIntervalElapsed чем не устраивает? :) Оно а...</title>
    <published>2012-06-21T13:59:30Z</published>
    <updated>2012-06-21T13:59:44Z</updated>
    <author>
      <name>Кот Матроскин</name>
      <uri>https://stocksharp.ru/users/808/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19959)" rel="nofollow" target="_blank"&gt;InsiderHSE&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19955)" rel="nofollow" target="_blank"&gt;Alexander Mukhanchikov&lt;/a&gt;:&lt;/strong&gt;
Как это никак? А WhenIntervalElapsed чем не устраивает? :)
Оно активируется по истечении определенных промежутков времени и вызывает Do. А нужно, чтобы Do вызывался только если условие верно...
А если прямо в Do влепить проверку на это условие?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;if(условие)
{
   действия
}
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&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/19959/</id>
    <title type="text">Alexander Mukhanchikov: Как это никак? А WhenIntervalElapsed чем не устраивает? :) Оно активируется ...</title>
    <published>2012-06-21T13:43:42Z</published>
    <updated>2012-06-21T13:43:42Z</updated>
    <author>
      <name>InsiderHSE</name>
      <uri>https://stocksharp.ru/users/6099/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19955)" rel="nofollow" target="_blank"&gt;Alexander Mukhanchikov&lt;/a&gt;:&lt;/strong&gt;
Как это никак? А WhenIntervalElapsed чем не устраивает? :)
Оно активируется по истечении определенных промежутков времени и вызывает Do. А нужно, чтобы Do вызывался только если условие верно...&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Как это никак? А WhenIntervalElapsed чем не устраивает? :)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Никак. Писать свое правило.&lt;/p&gt;
&lt;p&gt;Вот как пример класса, с нужным правилом.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-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;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6099/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;В прошлых версиях было так:
.When(() =&amp;gt; a == b, TimeSpan.FromSeconds(1)).Do...
Как теперь создать такое же правило?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>