﻿<?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">ActionStrategy частота проверки 1 сек?</title>
  <id>~/topic/1214/actionstrategy-chastota-proverki-1-sek/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-27T08:53:15Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1214" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/4602/</id>
    <title type="text">Mikhail Sukhov: По новому синтаксису стратегий напишу чуть позднее. С нетерпением ждём. </title>
    <published>2010-11-15T07:35:39Z</published>
    <updated>2010-11-15T07:35:39Z</updated>
    <author>
      <name>Soloton</name>
      <uri>https://stocksharp.ru/users/80/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Mikhail Sukhov:&lt;/strong&gt;
По новому синтаксису стратегий напишу чуть позднее.&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/4542/</id>
    <title type="text">Спасибо, жду примеров. Сразу напишу что у меня не работает даже вот такой простой вариантик namespac...</title>
    <published>2010-11-09T16:26:47Z</published>
    <updated>2010-11-09T16:44:55Z</updated>
    <author>
      <name>ustas</name>
      <uri>https://stocksharp.ru/users/27611/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Спасибо, жду примеров.
Сразу напишу что у меня не работает даже вот такой простой вариантик&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
namespace TestAction
{
    using System;
    using System.Linq;
    using System.Threading;
    using System.Collections.Generic;
    using System.ComponentModel;
    
    using Ecng.Trading.Algo;
    using Ecng.Trading.Algo.Candles;
    using Ecng.Trading.Algo.Strategies;
    using Ecng.Trading.Algo.Logging;
    using Ecng.Trading.BusinessEntities;
    using Ecng.Trading.Quik;
    using Ecng.Interop;
    using Ecng.Data;
    using Ecng.Common;
    using Ecng.ComponentModel;

    public class Test
    {
        public static readonly TimeSpan _timeFrame = TimeSpan.FromMinutes(1.0/6.0);
        public static Func&amp;lt;bool&amp;gt; psc;
        private static SignalStrategy _strat;
        private static CandleManager _candleManager;

        private static void TryCreateStrategy()
        {
            if (rts != null  &amp;amp;&amp;amp; _portfolio != null)
            {
                _strat = new SignalStrategy();
                
                _strat.Log += OnLog;
                _strat.PropertyChanged += OnStrategyPropertyChanged;
                _manager.Register(_strat, _portfolio, rts);
              
                _strat.CandleManager = _candleManager;
                _strat.Start();
                var logger = new FileStrategyLogger(&amp;quot;mylog.txt&amp;quot;);
               logger.Strategies.Add(_strat);
              
            }
        }


        static void Main()
        {

.... skipped 
// создание  trader
//запуск DDE и всего такого
... skipped

                            _candleManager = new CandleManager(trader);
                            _candleManager.RegisterTimeFrameCandles(rts, _timeFrame);

                            _candleManager.NewCandles += (token, candles) =&amp;gt;
                            {
                                psc =  ActionStrategyConditionHelper.CurrentCandleTotalVolumeMore(token, alertvol);
                                if (psc == null) { psc = ActionStrategyConditionHelper.CurrentCandleTotalVolumeMore(token, alertvol); }
                                if (_strat == null &amp;amp;&amp;amp; psc != null) { TryCreateStrategy(); } 
                              
                            };


                            _candleManager.CandlesChanged += (token, candles) =&amp;gt;
                            {
                                psc = ActionStrategyConditionHelper.CurrentCandleTotalVolumeMore(token, alertvol);
                            };

.. skipped
      }
    }



// стратегия
namespace TestAction
{

    using System;

    using Ecng.Trading.Algo;
    using Ecng.Trading.Algo.Candles;
    using Ecng.Trading.Algo.Strategies;
    using Ecng.Trading.BusinessEntities;
    using Ecng.Interop;
    using Ecng.Data;
    using Ecng.Common;
    using Ecng.ComponentModel;

    class SignalStrategy : ActionStrategy
    {
        private TimeSpan _timeFrame = TimeSpan.FromMinutes(1.0/6.0);
                
        public CandleManager CandleManager
        {
            get { return _candleManager; }
            set
            {
                _candleManager = value;
                _timeFrame = Test._timeFrame;
                Test.psc = () =&amp;gt; true;
                When( Test.psc ).
			Do(() =&amp;gt; { 
                 Console.WriteLine(&amp;quot;time:{0} psc:{1}&amp;quot;, System.DateTime.Now.TimeOfDay.ToString(), Test.psc());
            }).
            MakePeriodical(); // сделать событие периодичным
                             
            }
        }

    }

}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cтратегия  стартует и работает в статусе Runned;&lt;/p&gt;
&lt;p&gt;ActionStrategyConditionHelper.CurrentCandleTotalVolumeMore(token, alertvol);&lt;/p&gt;
&lt;p&gt;тоже работает и Test.psc() принимает верные значения false или true когда надо в зависимости от объёма текущей свечки&lt;/p&gt;
&lt;p&gt;но не отрабатывает Do почему то&lt;/p&gt;
&lt;p&gt;Версия 2.5.0&lt;/p&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/4539/</id>
    <title type="text">ustas: Так всё таки проверка выполнения условия When в ActionStrategy - происходит ежесекундно , а н...</title>
    <published>2010-11-09T15:44:18Z</published>
    <updated>2010-11-09T15:44:18Z</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;ustas:&lt;/strong&gt;
Так всё таки проверка выполнения условия When в  ActionStrategy - происходит ежесекундно , а не по событию?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Да, ActionStrategy с некоторым периодом смотрит на появления сигналов от условий. Уменьшать такой период можно через Strategy.Interval.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;ustas:&lt;/strong&gt;
Пожелание:
Хотелось бы увидеть пример использования в ActionStrategy новой фичи  ActionStrategyConditionHelper. Например использования ActionStrategyConditionHelper.LastTradePriceMore или даже лучше CurrentCandleTotalVolumeMore.  Т.к.  я туповат и мне до конца не совсем ясно как автор подразумевает применение ActionStrategy вообще. Тот пример который в доке всё таки скорее таймфреймовый так как в нём необходимо чтобы условие в When было == true в каждый новый timeframe. А что если в один из таймфремов проверочное условие не выполнится, как тогда?&lt;/p&gt;
&lt;p&gt;Спасибо и с уважением!&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/4509/</id>
    <title type="text">Приветствую уважаемых Михаила и коллег. Один вопросик и одно пожелание. Вопрос: Так всё таки проверк...</title>
    <published>2010-11-09T07:50:59Z</published>
    <updated>2010-11-09T12:54:47Z</updated>
    <author>
      <name>ustas</name>
      <uri>https://stocksharp.ru/users/27611/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Приветствую уважаемых Михаила и коллег.&lt;/p&gt;
&lt;p&gt;Один вопросик и одно пожелание.&lt;/p&gt;
&lt;p&gt;Вопрос:
Так всё таки проверка выполнения условия When в  ActionStrategy - происходит ежесекундно , а не по событию?&lt;/p&gt;
&lt;p&gt;Пожелание:
Хотелось бы увидеть пример использования в ActionStrategy новой фичи  ActionStrategyConditionHelper. Например использования ActionStrategyConditionHelper.LastTradePriceMore или даже лучше CurrentCandleTotalVolumeMore.  Т.к.  я туповат и мне до конца не совсем ясно как автор подразумевает применение ActionStrategy вообще. Тот пример который в доке всё таки скорее таймфреймовый так как в нём необходимо чтобы условие в When было == true в каждый новый timeframe. А что если в один из таймфремов проверочное условие не выполнится, как тогда?&lt;/p&gt;
&lt;p&gt;Спасибо и с уважением!&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>