﻿<?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/3580/vremya-zayavok-i-sdelok-otstaet-ot-istoricheskogo-pri-testirovanii/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-05T09:15:19Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=3580" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/25331/</id>
    <title type="text">Здравствуйте! Посмотрите вот здесь, может поможет. http://www.stocksharp.com/forum/3324/Raznoie-vrie...</title>
    <published>2013-04-15T14:26:01Z</published>
    <updated>2016-08-16T00:12:57Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.com/users/6502/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Здравствуйте! Посмотрите вот здесь, может поможет.&lt;br /&gt;&lt;a href="http://www.stocksharp.com/forum/3324/Raznoie-vriemia/" title="http://www.stocksharp.com/forum/3324/Raznoie-vriemia/"&gt;http://www.stocksharp.co...um/3324/Raznoie-vriemia/&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/25338/</id>
    <title type="text">Траблы возникают, если временнАя зона компа отлична от московской. Чтобы в логах и у сделок время бы...</title>
    <published>2013-04-15T17:16:08Z</published>
    <updated>2013-04-15T17:16:08Z</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;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;
ExchangeBoard = ExchangeBoard.Forts&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Сделать наследника от &lt;b&gt;EmulationTrader&lt;/b&gt; и в нем переопределить &lt;b&gt;GetMarketTime&lt;/b&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 EmulationTraderEx : EmulationTrader
	{
		public override DateTime GetMarketTime(Exchange exchange)
		{
			return MarketEmulator.CurrentTime;
		}
	}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Временная зона эмулятора - Москва. TimeSpan.FromHours(4) потому что лето.&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;

EmulationTraderEx trader;

...

((MarketEmulator)trader.MarketEmulator).EmulatorTimeZone = TimeZoneInfo.CreateCustomTimeZone(&amp;quot;Custom&amp;quot;, TimeSpan.FromHours(4), &amp;quot;Custom&amp;quot;, &amp;quot;Custom&amp;quot;);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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>
  <entry>
    <id>https://stocksharp.com/posts/m/25325/</id>
    <title type="text">Я вышел из ситуации приавлением целого числа 6 к времени при отрисовки метки заявки и сделки, код: s...</title>
    <published>2013-04-15T13:40:51Z</published>
    <updated>2013-04-15T13:40:51Z</updated>
    <author>
      <name>Roma</name>
      <uri>https://stocksharp.com/users/38969/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Я вышел из ситуации приавлением целого числа 6 к времени при отрисовки метки заявки и сделки, код:&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;

strategy.WhenNewMyTrades()
                        .Do(mytrades =&amp;gt; this.GuiAsync(
                            () =&amp;gt;
                                {
                                    Debug.WriteLine(&amp;quot;NewMyTrades: &amp;quot; + mytrades.Count());
                                    mytrades.ForEach(
                                        t =&amp;gt; Chart.ProcessValues(t.Trade.Time+TimeSpan.FromHours(6), new Dictionary&amp;lt;IChartElement, object&amp;gt;()
                                            {
                                                {_tradeElement, t}
                                            }));
                                }))
                            .Apply();

strategy.WhenOrderRegistered()
                       .Do(order =&amp;gt;
                           {
                               Debug.WriteLine(&amp;quot;OrderRegistered: &amp;quot; + order.Volume.ToString());
                               this.GuiAsync(
                                   () =&amp;gt; Chart.ProcessValues(order.Time+TimeSpan.FromHours(6), new Dictionary&amp;lt;IChartElement, object&amp;gt;()
                                       {
                                           {_orderElement, order}
                                       }));

                           })
                       .Apply();
&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/25319/</id>
    <title type="text">Время заявок и сделок отстает от исторического при тестировании. Использую EmulationTrader, данные з...</title>
    <published>2013-04-15T09:42:41Z</published>
    <updated>2013-04-15T09:45:03Z</updated>
    <author>
      <name>Roma</name>
      <uri>https://stocksharp.com/users/38969/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Время заявок и сделок отстает от исторического при тестировании.&lt;br /&gt;Использую EmulationTrader, данные загружаю из истории, закаченой через Гидру.&lt;br /&gt;В чем причина, как сделать правильно?&lt;br /&gt;Далее куски кода.&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_d853dfef6065445494f2d79371fd8e75');" title='Show spoiler' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_d853dfef6065445494f2d79371fd8e75' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
private void EmulateClick(object sender, RoutedEventArgs e)
        {
            if (!Directory.Exists(tbPathHistory.Text))
            {
                System.Windows.MessageBox.Show(string.Format(&amp;quot;Directory is not found: {0}&amp;quot;, tbPathHistory.Text));
                return;
            }

            // хранилище, через которое будет производиться доступ к тиковой и котировочной базе 
            var storageRegistry = new StorageRegistry();

            // изменяем путь, используемый по умолчанию
            ((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = tbPathHistory.Text;

            // используем алфавитное хранилище
            ((LocalMarketDataDrive)storageRegistry.DefaultDrive).UseAlphabeticPath = true;

            //===============
            
            // создаем тестовый инструмент, на котором будет производится тестирование 
            _security = new Security
            {
                Id = tbSecurityId.Text,//&amp;quot;RIZ2@RTS&amp;quot;,
                // по идентификатору инструмента будет искаться папка с историческими маркет данными
                Code = tbSecurityCode.Text,//&amp;quot;RIZ2&amp;quot;,
                Name = tbSecurityName.Text,//&amp;quot;RTS-12.12&amp;quot;,
                ExchangeBoard = (ExchangeBoard)cbSecurityExchangeBoard.SelectedItem,//ExchangeBoard.Forts,
            };

            // тестовый портфель 
            _portfolio = new Portfolio { Name = tbPortfolioName.Text, BeginValue = decimal.Parse(tbPortfolioBeginValue.Text) };

            // создаем шлюз для эмуляции 
            // инициализируем настройки (инструмент в истории обновляется раз в секунду) 
            _trader = new EmulationTrader(
                new[] { _security },
                new[] { _portfolio },
                storageRegistry)
            {
                MarketTimeChangedInterval = tpTimeFrame.Value.Value.TimeOfDay,
            };

            _trader.Connect();
            _trader.StartExport();           
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_948a0720427749c9885ea31b9dc12abf');" title='Show spoiler' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_948a0720427749c9885ea31b9dc12abf' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

_candleSeries.ProcessCandle += candle =&amp;gt;
            {
                //Debug.Print(&amp;quot;{0}&amp;quot;, candle);

                var candleBounds = timeFrame.GetCandleBounds(_candleSeries.Security);

                if (candle.State == CandleStates.Finished || candle.OpenTime &amp;gt;= candleBounds.Min)
                {
                    var valueSma = _indicatorSma.Process(candle);
                    var chartValueSma = new ChartIndicatorValue(_indicatorSma, valueSma);

                    var valueStohastic = _indicator.Process(candle);
                    var chartValueStohastic = new ChartIndicatorValue(_indicator, valueStohastic);

                    this.GuiAsync(() =&amp;gt; Chart.ProcessValues(candle.OpenTime, new Dictionary&amp;lt;IChartElement, object&amp;gt;()
                        {
                            {_chartCandleElement, candle},
                            {_chartIndicatorSmaElement, chartValueSma},
                            {_chartIndicatorStohasticElement, chartValueStohastic}
                        }));
                }
            };
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_516f4d33cd3546a9938221375be3c388');" title='Show spoiler' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_516f4d33cd3546a9938221375be3c388' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

strategy.WhenNewMyTrades()
                        .Do(mytrades =&amp;gt; this.GuiAsync(
                            () =&amp;gt;
                                {
                                    Debug.WriteLine(&amp;quot;NewMyTrades: &amp;quot; + mytrades.Count());
                                    mytrades.ForEach(
                                        t =&amp;gt; Chart.ProcessValues(t.Trade.Time, new Dictionary&amp;lt;IChartElement, object&amp;gt;()
                                            {
                                                {_tradeElement, t}
                                            }));
                                }))
                            .Apply();

strategy.WhenOrderRegistered()
                       .Do(order =&amp;gt;
                           {
                               Debug.WriteLine(&amp;quot;OrderRegistered: &amp;quot; + order.Volume.ToString());
                               this.GuiAsync(
                                   () =&amp;gt; Chart.ProcessValues(order.Time, new Dictionary&amp;lt;IChartElement, object&amp;gt;()
                                       {
                                           {_orderElement, order}
                                       }));

                           })
                       .Apply();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>