﻿<?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/2785/pervaya-minuta-torgov/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-05-04T23:08:58Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=2785" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/19717/</id>
    <title type="text">Не хочется ради одной минуты в день нагружать стратегию лишним правилом - скорости это не прибавляет...</title>
    <published>2012-06-12T15:39:24Z</published>
    <updated>2012-06-12T15:45:23Z</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;Memory &lt;a href="https://stocksharp.com/posts/m/19708/" 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;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;Не хочется ради одной минуты в день нагружать стратегию лишним правилом - скорости это не прибавляет.&lt;/div&gt;&lt;/div&gt; Так это и является правилом стратегии - не торговать в первую минуту торгов. В любом случае где-то проверка этого условия будет выполнятся постоянно и также отнимать время. И разработчики, я думаю, так-же будут вешать включение/выключение выполнения правил стратегии в событии изменения времени. Вот насколько долог путь прохождения события из трейдера в стратегию - вопрос занятный. &lt;br /&gt;На сейчас, других вариантов похоже нет. Можно, конечно тригерком сделать. &lt;br /&gt;1. В Trader.MarketTimeChanged включить правило, выключить обработку MarketTimeChanged.&lt;br /&gt;2. В обработчике поступления свечей (ближе к концу торгов) снова включить MarketTimeChanged. Можно, тупо, в полночь, например.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Т.е., если концептуально, то:&lt;br /&gt;- подписаться на правило, например, WhenTimeCome со временем срабатывания в 18:44 и 10:01.&lt;br /&gt;- в момент срабатывания WhenTimeCome со временем 18:44 приостанавливаем все торговые правила.&lt;br /&gt;- в момент срабатывания WhenTimeCome со временем 10:01 возобновляем ранее приостановленные торговые правила.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19708/</id>
    <title type="text">Не хочется ради одной минуты в день нагружать стратегию лишним правилом - скорости это не прибавляет...</title>
    <published>2012-06-12T12:26:15Z</published>
    <updated>2012-06-12T12:26:15Z</updated>
    <author>
      <name>Memory</name>
      <uri>https://stocksharp.com/users/6063/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;Не хочется ради одной минуты в день нагружать стратегию лишним правилом - скорости это не прибавляет.&lt;/div&gt;&lt;/div&gt; Так это и является правилом стратегии - не торговать в первую минуту торгов. В любом случае где-то проверка этого условия будет выполнятся постоянно и также отнимать время. И разработчики, я думаю, так-же будут вешать включение/выключение выполнения правил стратегии в событии изменения времени. Вот насколько долог путь прохождения события из трейдера в стратегию - вопрос занятный. &lt;br /&gt;На сейчас, других вариантов похоже нет. Можно, конечно тригерком сделать. &lt;br /&gt;1. В Trader.MarketTimeChanged включить правило, выключить обработку MarketTimeChanged.&lt;br /&gt;2. В обработчике поступления свечей (ближе к концу торгов) снова включить MarketTimeChanged. Можно, тупо, в полночь, например.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19704/</id>
    <title type="text">Получается что EmulationTrader работает не совсем так как работает площадка? Но, тогда это другой во...</title>
    <published>2012-06-12T11:30:16Z</published>
    <updated>2012-06-12T11:30:16Z</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;Memory &lt;a href="https://stocksharp.com/posts/m/19700/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Получается что EmulationTrader работает не совсем так как работает площадка? Но, тогда это другой вопрос об изменении работы EmulationTrader.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Теоретически, он работает вроде как правильно, но на практике, по лимитнику не закрыться, т.к. цена слишком быстро проскочит через заявку, и которая не успеет сработать. А по маркету закрываться - окажешься последним пассажиром в уходящем поезде. Это из собственных наблюдений. Поэтому предпочитаю в тестах (раньше тестировал в самодельном тестере) выбрасывать первую минуту дня.&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Memory &lt;a href="https://stocksharp.com/posts/m/19700/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Ловить Trader.MarketTimeChanged и в нем вешать или снимать правила при наступлении и прекращен времени для торговли.&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/19689/</id>
    <title type="text">Ну а что касается правил, у меня правила вызываются всегда, просто они ничего не делают т.к. позиция...</title>
    <published>2012-06-12T10:13:28Z</published>
    <updated>2012-06-12T11:17:51Z</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;Memory &lt;a href="https://stocksharp.com/posts/m/19685/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Ну а что касается правил, у меня правила вызываются всегда, просто они ничего не делают т.к. позиция не открыта.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;При торговле интрадей все относительно просто. Но если я переношу позицию через ночь, а утром гэп против моей позиции, то EmulationTrader закроется по стопу в первые секунды торгов. В реальности, по этой цене не закрыться.&lt;br /&gt;Опять же, если в правилах стоит Once(), а внутрь засуну условие&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(Strategy.Trader.MarketTime.TimeOfDay &amp;lt; TimeForOpen.TimeOfDay) return;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;то больше оно не сработает. А не ставить Once() - получу целый поток сделок, который трудно проконтролировать</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19700/</id>
    <title type="text">Ну а что касается правил, у меня правила вызываются всегда, просто они ничего не делают т.к. позиция...</title>
    <published>2012-06-12T11:14:43Z</published>
    <updated>2012-06-12T11:14:43Z</updated>
    <author>
      <name>Memory</name>
      <uri>https://stocksharp.com/users/6063/</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/19689/" 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;Memory &lt;a href="https://stocksharp.com/posts/m/19685/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Ну а что касается правил, у меня правила вызываются всегда, просто они ничего не делают т.к. позиция не открыта.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;При торговле интрадей все относительно просто. Но если я переношу позицию через ночь, а утром гэп против моей позиции, то EmulationTrader закроется по стопу в первые секунды торгов. В реальности, по этой цене не закрыться.&lt;br /&gt;Опять же, если в правилась стоит Once(), а внутрь засуну условие&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(Strategy.Trader.MarketTime.TimeOfDay &amp;lt; TimeForOpen.TimeOfDay) return;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;то больше оно не сработает. А не ставить Once() - получу целый поток сделок, который трудно проконтролировать&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Ага. Получается что EmulationTrader работает не совсем так как работает площадка? Но, тогда это другой вопрос об изменении работы EmulationTrader. &lt;br /&gt;Что касается правил то - да надо ловить все сделки. Есть еще вариант, если от Once() не хотим отказыватся. Ловить Trader.MarketTimeChanged и в нем вешать или снимать правила при наступлении и прекращен времени для торговли.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19686/</id>
    <title type="text">Я тоже примерно так делаю, чтобы закрывался за минуту до клиринга, закрывал позы и открывался после....</title>
    <published>2012-06-12T09:48:34Z</published>
    <updated>2012-06-12T09:48:34Z</updated>
    <author>
      <name>OvcharenkoVI</name>
      <uri>https://stocksharp.com/users/390/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Я тоже примерно так делаю, чтобы закрывался за минуту до клиринга, закрывал позы и открывался после. Но я через DateTime сам ввожу требуемое время и в region исполнения сигналов ставлю флаг, что текущее время входит в заданные мною промежутки&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;
using System;
using System.Collections.Generic;
using Ecng.Collections;
using StockSharp.Algo.Logging;
using StockSharp.Algo.Strategies;
using StockSharp.BusinessEntities;

namespace TradeSystem
{
    public class StrategyRTS : Strategy
    {
        #region Время остановки / старта

        private DateTime stopTime1;
        private DateTime stopTime2;
        private DateTime stopTime3;

        private DateTime startTime1;
        private DateTime startTime2;
        private DateTime startTime3;

        #endregion

        public StrategyRTS()
        {
            startTime1 = DateTime.Today.AddHours(10).AddMinutes(0);
            stopTime1 = DateTime.Today.AddHours(13).AddMinutes(59);

            startTime2 = DateTime.Today.AddHours(14).AddMinutes(03);
            stopTime2 = DateTime.Today.AddHours(18).AddMinutes(44);

            startTime3 = DateTime.Today.AddHours(19).AddMinutes(00);
            stopTime3 = DateTime.Today.AddHours(23).AddMinutes(49);
        }

        protected override void OnStarting()
        {
            Trader.RegisterQuotes(Security);

            this
                .When(Security.MarketDepthChanged())
                .Do(Calculate);

            base.OnStarting();
        }

        protected override void OnStopped()
        {
            Trader.UnRegisterQuotes(Security);

            base.OnStopped();
        }

        private void Calculate()
        {
            bool isTradingTime =

                (Trader.MarketTime &amp;gt;= startTime1 &amp;amp;&amp;amp;
                Trader.MarketTime &amp;lt; stopTime1) ||
                (Trader.MarketTime &amp;gt;= startTime2 &amp;amp;&amp;amp;
                Trader.MarketTime &amp;lt; stopTime2) ||
                (Trader.MarketTime &amp;gt;= startTime3 &amp;amp;&amp;amp;
                Trader.MarketTime &amp;lt; stopTime3);

            if (isTradingTime)
            {
                #region Исполнение сигналов

                

                #endregion
            }
            else
            {
                if (isClosed == false)
                {
                    this.AddInfoLog(&amp;quot;Отменяю ордера, закрываю позиции&amp;quot;);

                    Position pos = Trader.GetPosition(Portfolio, Security);

                    Trader.CancelOrders(null, Portfolio, null, null, Security);

                    if (pos != null)
                    {
                        if (pos.CurrentValue != 0)
                        {
                            ClosePositions(pos.CurrentValue);
                        }
                    }
                }
            }
        }
    }

}&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/19685/</id>
    <title type="text">вот такое условие в правилах должно работатьif(Strategy.Trader.MarketTime.TimeOfDay TimeForOpen.</title>
    <published>2012-06-12T09:14:09Z</published>
    <updated>2012-06-12T09:14:09Z</updated>
    <author>
      <name>Memory</name>
      <uri>https://stocksharp.com/users/6063/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">вот такое условие в правилах должно работать&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
if(Strategy.Trader.MarketTime.TimeOfDay &amp;lt; TimeForOpen.TimeOfDay) return;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;. TimeForOpen должно быть равным тому времени когда Вам нужно начинать торговлю&lt;br /&gt;Ну а что касается правил, у меня правила вызываются всегда, просто они ничего не делают т.к. позиция не открыта. Помоему проще неукда. А позиция открывается только при Вренмени открытия свачи &amp;gt; TimeForOpen.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19683/</id>
    <title type="text">Заинтересовался вопросом: Тестирую стратегию на EmulationTrader. Таймфрейм, допустим, 10 мин. Не хоч...</title>
    <published>2012-06-12T08:30:55Z</published>
    <updated>2012-06-12T08:30:55Z</updated>
    <author>
      <name>Кот Матроскин</name>
      <uri>https://stocksharp.com/users/808/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Заинтересовался вопросом: &lt;br /&gt;Тестирую стратегию на EmulationTrader. Таймфрейм, допустим, 10 мин. Не хочу, чтобы  стратегия торговала в первую минуту торгов. Известные мне варианты:&lt;br /&gt;1. Самый простой - поставить условие, чтобы выбрасывать первую свечку. Не самый лучший вариант по многим причинам. Сложность вижу, чтобы заставить правила тоже не работать в первую свечку.&lt;br /&gt;Кроме того, видимо, что WorkingTime не дружит с EmulationTrader. &lt;br /&gt;Создал производный класс от WorkingTime и поставил внутри него метки с выводом их в лог – ни разу к WorkingTime.Times никто не обратился&lt;br /&gt;2. Смастерить &amp;quot;костыль&amp;quot;. Например, подписаться на получение минутных свечей, из которых уже мастерить десятиминутные (а первую свечу дня - девятиминутную). Та же проблема: заставить правила тоже не работать в первую, выкинутую, минуту.&lt;br /&gt;&lt;br /&gt;Кто-нить знаем более адекватные способы решения этой проблемы? Или же есть встроенные методы?&lt;br /&gt;&lt;br /&gt;Ежели их нет, то предложение авторам библиотеки предусмотреть такую фичу&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>