﻿<?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">Лишние моиТейды в EmulationTrader</title>
  <id>~/topic/4238/lishnie-moiteidy-v-emulationtrader/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-24T19:01:14Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=4238" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/28817/</id>
    <title type="text">Аналогичная проблема после миграции на 4.2.1.7. Воспроизводится часто Добавил в список активных баго...</title>
    <published>2014-01-02T19:39:06Z</published>
    <updated>2016-08-16T00:16:09Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Sam &lt;a href="https://stocksharp.ru/posts/m/28816/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Аналогичная проблема после миграции на 4.2.1.7. Воспроизводится часто&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Добавил в &lt;a href="http://stocksharp.com/forum/4240/Oshibki-emuliatora-4-2/" title="http://stocksharp.com/forum/4240/Oshibki-emuliatora-4-2/"&gt;список&lt;/a&gt; активных багов. На SampleHistory воспроизводится?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28853/</id>
    <title type="text">Спасибо за код, ошибку подтверждаю, в следующей версии будет фикс.</title>
    <published>2014-01-04T05:05:37Z</published>
    <updated>2014-01-04T05:05:37Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.ru/users/5990/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Спасибо за код, ошибку подтверждаю, в следующей версии будет фикс.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28843/</id>
    <title type="text">Если обьем заявки поставить равным одному контракту , лишние трейды не проходят.</title>
    <published>2014-01-03T20:39:41Z</published>
    <updated>2014-01-03T20:39:41Z</updated>
    <author>
      <name>longtrades</name>
      <uri>https://stocksharp.ru/users/6094/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Если обьем заявки поставить равным одному контракту , лишние трейды не проходят.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28842/</id>
    <title type="text">Вот переделал пример , будет ставить заявки на лучший бид/аск. Ставим точку отановки на строку 54 в ...</title>
    <published>2014-01-03T20:14:07Z</published>
    <updated>2014-01-03T20:20:08Z</updated>
    <author>
      <name>longtrades</name>
      <uri>https://stocksharp.ru/users/6094/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Вот переделал пример , будет ставить заявки на лучший бид/аск.&lt;br /&gt;&lt;br /&gt;Ставим точку отановки на строку 54 в SmaStrategy.cs и получаем остановку когда нужно.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

namespace SampleHistoryTesting
{
	using Ecng.Common;
    using System.Collections.Generic;
    using System.Linq;
	using StockSharp.Algo;
	using StockSharp.Algo.Candles;
	using StockSharp.Algo.Indicators;
	using StockSharp.Algo.Indicators.Trend;
	using StockSharp.Algo.Strategies;
	using StockSharp.Algo.Testing;
	using StockSharp.Logging;
	using StockSharp.BusinessEntities;
    using StockSharp.Messages;

	class SmaStrategy : Strategy
	{
		private readonly CandleSeries _series;
		private bool _isShortLessThenLong;

		public SmaStrategy(CandleSeries series, SimpleMovingAverage longSma, SimpleMovingAverage shortSma)
		{
			_series = series;

			LongSma = longSma;
			ShortSma = shortSma;
		}

		public SimpleMovingAverage LongSma { get; private set; }
		public SimpleMovingAverage ShortSma { get; private set; }

		protected override void OnStarted()
		{

            this.Security.Trader.NewMyTrades += trades =&amp;gt; NewMyTrades(trades);

            this.Trader.MarketTimeChanged += t =&amp;gt; ProcessDepth();

			// запоминаем текущее положение относительно друг друга
			_isShortLessThenLong = ShortSma.GetCurrentValue() &amp;lt; LongSma.GetCurrentValue();

			base.OnStarted();
		}

        private void NewMyTrades(IEnumerable&amp;lt;MyTrade&amp;gt; trades)           
        {


            foreach (var tr in trades)
            {
                if (tr.Order.GetTrades().Sum(x =&amp;gt; x.Trade.Volume) &amp;gt; tr.Order.Volume)
                {
                    var Trtrades = this.Trader.MyTrades;
                    var stp = 0;
                }
            }
        }

        Order buy_order = null;
        Order sell_order = null;

        private void ProcessDepth()
        {
            var Volume = 2;
            if (buy_order != null)
            {
                if (buy_order.State == OrderStates.Done || buy_order.State == OrderStates.Failed)
                {
                    buy_order = this.CreateOrder(OrderDirections.Buy, Security.BestBid.Price, Volume);
                    RegisterOrder(buy_order);
                }
                else
                    if (buy_order.Price != Security.BestBid.Price)
                    {
                        this.CancelOrder(buy_order);
                        buy_order = this.CreateOrder(OrderDirections.Buy, Security.BestBid.Price, Volume);
                        RegisterOrder(buy_order);
                    }
            }
            else 
            {
                buy_order = this.CreateOrder(OrderDirections.Buy, Security.BestBid.Price, Volume);
                RegisterOrder(buy_order);
            }

            if (sell_order != null)
            {
                if (sell_order.State == OrderStates.Done || sell_order.State == OrderStates.Failed)
                {
                    sell_order = this.CreateOrder(OrderDirections.Sell, Security.BestAsk.Price, Volume);
                    RegisterOrder(sell_order);
                }
                else
                    if (sell_order.Price != Security.BestAsk.Price)
                    {
                        this.CancelOrder(sell_order);
                        sell_order = this.CreateOrder(OrderDirections.Sell, Security.BestAsk.Price, Volume);
                        RegisterOrder(sell_order);
                    }
            }
            else
            {
                sell_order = this.CreateOrder(OrderDirections.Sell, Security.BestAsk.Price, Volume);
                RegisterOrder(sell_order);
            }




        }

	
	}
}
&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.ru/posts/m/28841/</id>
    <title type="text">Я по первой и отписался. Что думаю что лишние трейды могут появлятся потому что цена прошла уровень ...</title>
    <published>2014-01-03T20:10:55Z</published>
    <updated>2014-01-03T20:10:55Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;longtrades &lt;a href="https://stocksharp.ru/posts/m/28840/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Я по первой и отписался. Что думаю что лишние трейды могут появлятся потому что цена прошла уровень , и стакан наложился на ордер.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Как воспроизвести данную ситуацию?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28840/</id>
    <title type="text">Я по первой и отписался. Что думаю что лишние трейды могут появлятся потому что цена прошла уровень ...</title>
    <published>2014-01-03T19:25:06Z</published>
    <updated>2014-01-03T19:25:06Z</updated>
    <author>
      <name>longtrades</name>
      <uri>https://stocksharp.ru/users/6094/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Я по первой и отписался. Что думаю что лишние трейды могут появлятся потому что цена прошла уровень , и стакан наложился на ордер.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28838/</id>
    <title type="text">Котирование ставит по лучшему биду/аску или выше/ниже их ? если выше/ниже то не будет перекрытия уро...</title>
    <published>2014-01-03T17:31:25Z</published>
    <updated>2014-01-03T17:31:25Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;longtrades &lt;a href="https://stocksharp.ru/posts/m/28837/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Котирование ставит по лучшему биду/аску или выше/ниже их ? если выше/ниже то не будет перекрытия уровней в стакане  , заявка будет исполнятся только по попаданию цены. Думаю нужно ставить на лучшие бид или аск, чтобы воспроизвести проблему. Если у вас не получится то немного познее попробую на SampleHistoryTesting .&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Вы можете по первоначальной проблеме отписаться? Мы рассматриваем сейчас только ее, так как она подтверждена косвенно. Другие проблемы или ошибки просьба не писать в этом топике.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28837/</id>
    <title type="text">Котирование ставит по лучшему биду/аску или выше/ниже их ? если выше/ниже то не будет перекрытия уро...</title>
    <published>2014-01-03T17:23:09Z</published>
    <updated>2014-01-03T17:23:09Z</updated>
    <author>
      <name>longtrades</name>
      <uri>https://stocksharp.ru/users/6094/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Котирование ставит по лучшему биду/аску или выше/ниже их ? если выше/ниже то не будет перекрытия уровней в стакане  , заявка будет исполнятся только по попаданию цены. Думаю нужно ставить на лучшие бид или аск, чтобы воспроизвести проблему. Если у вас не получится то немного познее попробую на SampleHistoryTesting .</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28836/</id>
    <title type="text">На похожей конфигурации в SampleHistoryTesting проблему воспроизвети не удается. Можете попробовать ...</title>
    <published>2014-01-03T16:18:45Z</published>
    <updated>2014-01-03T16:19:19Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.ru/users/5990/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">На похожей конфигурации в SampleHistoryTesting проблему воспроизвети не удается. Можете попробовать на нем? Я использовал стаканы и соответственно котировние, которое ставит лимитки в стакан.&lt;br /&gt;&lt;br /&gt;По возможности, было бы хорошо увидеть небольшое приложение, которое воспроизводит проблему.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28834/</id>
    <title type="text">Тестирую на тиках и стаканах Настройки эмулятора: var trader = new EmulationTrader( new { security }...</title>
    <published>2014-01-03T15:37:56Z</published>
    <updated>2014-01-03T15:38:13Z</updated>
    <author>
      <name>longtrades</name>
      <uri>https://stocksharp.ru/users/6094/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Тестирую на тиках и стаканах&lt;br /&gt;Настройки эмулятора:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

            var trader = new EmulationTrader(
                new[] { security },
                new[] { portfolio })
            {
                MarketTimeChangedInterval = TimeSpan.FromMilliseconds(10),
                StorageRegistry = storageRegistry,

                MarketEmulator =
                {
                    Settings =
                    {
                        // использовать стаканы
                        UseMarketDepth = true,

                        // использовать свечки
                        //UseCandlesTimeFrame = emulationInfo.UseCandleTimeFrame,

                        // проверка что стаканы соответствуют сделкам. Улучшает реалистичность тестирования.
                        SyncDepthToTrades = false,

                        // сведение сделки в эмуляторе если цена коснулась нашей лимитной заявки. 
                        // Если выключено - требуется &amp;quot;прохождение цены сквозь уровень&amp;quot;
                        // (более &amp;quot;суровый&amp;quot; режим тестирования.)
                        FillOnTouch = false,                     
                    }
                }
            };
&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.ru/posts/m/28833/</id>
    <title type="text">Еще раз, на каких данных тестируете (тики, стаканы, свечки, генераторы стаканов и т.д.), какие настр...</title>
    <published>2014-01-03T15:34:21Z</published>
    <updated>2014-01-03T15:34:21Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.ru/users/5990/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Еще раз, на каких данных тестируете (тики, стаканы, свечки, генераторы стаканов и т.д.), какие настройки у эмулятора?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28832/</id>
    <title type="text">Данные конвертировал с QScalp, на SampleHistoryTesting не пробовал но думаю что для того что бы восп...</title>
    <published>2014-01-03T12:45:37Z</published>
    <updated>2014-01-03T14:35:18Z</updated>
    <author>
      <name>longtrades</name>
      <uri>https://stocksharp.ru/users/6094/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Данные конвертировал с QScalp, на SampleHistoryTesting не пробовал но думаю что для того что бы воспроизвести на SampleHistoryTesting  нужно не бить по маркету, а ставить заявку по определенной цене , думаю такое может быть еще и из-за того что один раз ордер исполняется изза изменения цены инструмента, а другой из-за накладания уровней в стакане , но это нужно проверять .</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28824/</id>
    <title type="text">На рисунке все видно посмотрите внимательно , это MyTrades в EmulationTrader , видно что я выставил ...</title>
    <published>2014-01-03T11:15:53Z</published>
    <updated>2014-01-03T11:15:53Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.ru/users/5990/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;longtrades &lt;a href="https://stocksharp.ru/posts/m/28813/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;На рисунке все видно посмотрите внимательно , это MyTrades в EmulationTrader , видно что я выставил один ордер на покупку с номером 67666290/8 и обьемом 2 контракта, то есть максимум что я могу купить по этому ордеру 2 контракта , но получаю три MyTrade , с общим обьемом 4 контракта , то есть на ордер на покупку 2 контрактов мне наливают 4 контракта, что невозможно в реале, и  происходит навено потому что EmulationTrader неуспевает изменить статус заявки на уже исполненую.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;На каких данных и с какими параметрами производится тестирование? Ошибка воспроизводится на SampleHistoryTesting?&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28822/</id>
    <title type="text">Спасибо , Михаил. Если можно у меня есть вопрос о тестере ответ на который я нигде не нашел. Если пр...</title>
    <published>2014-01-03T11:06:03Z</published>
    <updated>2014-01-03T11:06:03Z</updated>
    <author>
      <name>longtrades</name>
      <uri>https://stocksharp.ru/users/6094/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Спасибо , Михаил.&lt;br /&gt;&lt;br /&gt;Если можно у меня есть вопрос о тестере ответ на который я нигде не нашел.&lt;br /&gt;&lt;br /&gt;Если происзодится тестирование с использованием стаканов :&lt;br /&gt; например я ставлю заявку на покупку одного контракта скажем на бид в то время на этом биде стоит скажем обьем 15 контрактов , потом обьем на этом биде возрастает до скажем 40, будет ли мой ордер исполнен когда по биде пройдет 16 контрактов , так как он был 16-тым в очереди на покупку по даной цене , или все будет зависеть от настройки параметра FillOnTouch в трейдере , тоесть ордер будет считаться исполненным или после касания или после прохождения ценой уровня .&lt;br /&gt;&lt;br /&gt;И что значит &amp;quot;FillOnTouch  - Если выключено - требуется &amp;quot;прохождение цены сквозь уровень&amp;quot;&amp;quot; , ордер считается исполненным когда цена стала ниже бида или же когда на даном биде в стакане обьем станет равным нулю.&lt;br /&gt;&lt;br /&gt;Спасибо.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28816/</id>
    <title type="text">Аналогичная проблема после миграции на 4.2.1.7. Воспроизводится часто</title>
    <published>2014-01-02T17:52:37Z</published>
    <updated>2014-01-02T17:52:37Z</updated>
    <author>
      <name>Sam</name>
      <uri>https://stocksharp.ru/users/6048/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Аналогичная проблема после миграции на 4.2.1.7. Воспроизводится часто</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28813/</id>
    <title type="text">На рисунке все видно посмотрите внимательно , это MyTrades в EmulationTrader , видно что я выставил ...</title>
    <published>2014-01-02T10:24:49Z</published>
    <updated>2014-01-02T10:43:27Z</updated>
    <author>
      <name>longtrades</name>
      <uri>https://stocksharp.ru/users/6094/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">На рисунке все видно посмотрите внимательно , это MyTrades в EmulationTrader , видно что я выставил один ордер на покупку с номером 67666290/8 и обьемом 2 контракта, то есть максимум что я могу купить по этому ордеру 2 контракта , но получаю три MyTrade , с общим обьемом 4 контракта , то есть на ордер на покупку 2 контрактов мне наливают 4 контракта, что невозможно в реале, и  происходит навено потому что EmulationTrader неуспевает изменить статус заявки на уже исполненую.&lt;br /&gt;&lt;br /&gt;Не знаю как считает PnL PnLManager но возникают большие сомнения в верности тестирования алгоритмов на истории.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28812/</id>
    <title type="text">Не уверен что понял написанное. </title>
    <published>2014-01-02T09:54:58Z</published>
    <updated>2014-01-02T09:54:58Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Не уверен что понял написанное. </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/28810/</id>
    <title type="text">Заметил посчитаный мною PL, не совпадает с тем что считает ПЛМанагер при тестировании на истории, во...</title>
    <published>2014-01-01T17:08:39Z</published>
    <updated>2014-01-01T17:09:56Z</updated>
    <author>
      <name>longtrades</name>
      <uri>https://stocksharp.ru/users/6094/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Заметил посчитаный мною PL, не совпадает с тем что считает ПЛМанагер при тестировании на истории, вот нашел почему.&lt;br /&gt;&lt;br /&gt;версия 4.2.1.7&lt;br /&gt;&lt;br /&gt;Прошу посмотреть рисунок:&lt;br /&gt;&lt;br /&gt;67666290/8 - Обьем 2 по ней же прошел обем 4 контракта, так же 67666294/8 - Обьем 2 куплено по ней тоже - 4 контракта.&lt;br /&gt;&lt;br /&gt;Нехорошо получается [cursing]</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>