﻿<?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">Форум. StockSharp</title>
  <id>https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=202</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-05-24T23:31:24Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=202" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/2038/</id>
    <title type="text">Стратегия Котирование</title>
    <published>2011-10-20T12:48:27Z</published>
    <updated>2011-10-20T12:48:27Z</updated>
    <author>
      <name>lesser</name>
      <uri>https://stocksharp.ru/users/6095/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Можно ли добавить в стратегии Котирование , параметр минимально допустимый спред :&lt;br /&gt;&lt;br /&gt;Например у меня стоит заявка на покупку по лучшей цене , тот кто передомной переставляет свою заявку наперед , если спред больше равно минимально допустимого , я переставляю заявку наперед , если же  спред меньше минимально допустимого я переслявляю не наперед а наоборот ближе к той заявки что за мной , тогда тот кто передомной отодвинется ближе ко мне и я снова смогу стать первым.&lt;br /&gt;&lt;br /&gt;Важно чтоб отодвигатся назад .&lt;br /&gt;&lt;br /&gt;Спасибо.&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2037/</id>
    <title type="text">Обновление инструментов через SmartCOM</title>
    <published>2011-10-19T19:40:04Z</published>
    <updated>2011-10-19T19:40:04Z</updated>
    <author>
      <name>Marco</name>
      <uri>https://stocksharp.ru/users/6041/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">Столкнулся с тем, что Hydra не обновляет список инструментов из Smart&amp;#39;а. При попытке обновления программа надолго задумывается, после чего выводит сообщение &amp;quot;Добавлено 0 инструментов&amp;quot;.  Hydra версии 4.0.3.&lt;br /&gt;&lt;br /&gt;Проблему я вроде бы поправил. Но так как я с архитектурой проекта практически не знаком, я бы попросил знающих людей по возможности посмотреть мои исправления и по проверить их на подключении через другие источники данных.  &lt;br /&gt;&lt;br /&gt;Исправления вносились в классы  StockSharp.Hydra.Core.MarketDataTrader и  StockSharp.Hydra.Core.MarketDataTrader.SecurityUpdate. &lt;br /&gt;&lt;br /&gt;Суть изменений: &lt;br /&gt;- Метод MarketDataTrader.Start() ожидал получения данных об инструментах, но экспорт инструментов не запрашивался. Была добавлена обработка информации о портфелях и вызов RegisterPortfolio для каждого полученного портфеля.&lt;br /&gt;- Экземпляр класса SecurityUpdate создавался после вызова Trader.Connect(). Теоретически SecurityUpdate мог опоздать с подключением к событию NewSecurities. Создание SecurityUpdate было перенесено до вызова Trader.Connect().&lt;br /&gt;- События NewPortfolio/NewSecurities не вызывались до завершения SecurityUpdate.Run(), несмотря на наличие вызова Sleep() в теле этого метода. Метод Run() переписан с использованием объекта синхронизации.&lt;br /&gt;&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;
        
private void OnNewPortfolios(IEnumerable&amp;lt;Portfolio&amp;gt; portfolios)
        {
            portfolios.ForEach(portfolio =&amp;gt; Trader.RegisterPortfolio(portfolio));
        }

		/// &amp;lt;summary&amp;gt;
		/// Запустить накопление маркет-данных.
		/// &amp;lt;/summary&amp;gt;
		public void Start()
		{
			Trader = _createTrader();

			try
			{
				((BaseTrader)Trader).EntityFactory = new MarketDataEntityFactory(_securityStorage);

				Trader.ProcessDataError += OnError;
				Trader.Connected += OnConnected;
				Trader.NewTrades += OnNewTrades;
				Trader.QuotesChanged += OnQuotesChanged;
                Trader.NewPortfolios += OnNewPortfolios;

                using (var su = new SecurityUpdate(Trader))
                {                    

                    Trader.Connect();

                    lock (_connectedLock)
                    {
                        if (!Trader.IsConnected &amp;amp;&amp;amp; !Monitor.Wait(_connectedLock, TimeSpan.FromSeconds(20)))
                            throw new TimeoutException(&amp;quot;Ожидание подключения превысило максимально допустимый интервал.&amp;quot;);
                    }

                    su.Run();
                }
               
			}
			catch
			{
				Trader.Dispose();
				throw;
			}
		}
		
		/// &amp;lt;summary&amp;gt;
		/// Остановить накопление маркет-данных.
		/// &amp;lt;/summary&amp;gt;
		public void Stop()
		{
            foreach (Portfolio portfolio in Trader.Portfolios) Trader.UnRegisterPortfolio(portfolio);

			Trader.ProcessDataError -= OnError;
			Trader.Connected -= OnConnected;
			Trader.NewTrades -= OnNewTrades;
			Trader.QuotesChanged -= OnQuotesChanged;
            Trader.NewPortfolios -= OnNewPortfolios;

			Trader.Dispose();

			LastError = null;
		}

		private sealed class SecurityUpdate : Disposable
		{
			private readonly ITrader _trader;

            private readonly object _securitiesLock = new object();
             
			public SecurityUpdate(ITrader trader)
			{
				_trader = trader;
				_trader.NewSecurities += OnNewSecurities;
			}

			public void Run()
			{
                int waitSeconds = 180;  // initial delay

				while (true)
				{
					Thread.Sleep(500);
                    lock (_securitiesLock)
                    {
                        if (!Monitor.Wait(_securitiesLock, TimeSpan.FromSeconds(waitSeconds)))
                            break;

                        waitSeconds = 30;  // if we have received a first portion of data, change delay to 30 seconds
                    }
				}
			}

			void OnNewSecurities(IEnumerable&amp;lt;Security&amp;gt; securities)
			{
                lock (_securitiesLock)
                    Monitor.PulseAll(_securitiesLock);
			}

			protected override void DisposeManaged()
			{
				_trader.NewSecurities -= OnNewSecurities;
			}
		}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2036/</id>
    <title type="text">Свечки в примере SampleCandles</title>
    <published>2011-10-19T16:54:55Z</published>
    <updated>2011-10-19T16:54:55Z</updated>
    <author>
      <name>kblp</name>
      <uri>https://stocksharp.ru/users/28356/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Добрый вечер. Подскажите, как решить проблему с построением графиков? &lt;br /&gt;&lt;br /&gt;Для простоты объяснения, расскажу на примере SampleCandles.&lt;br /&gt;В примере, при построении графика и загрузке данных, фокус и период чарта остается на свечках &amp;quot;в прошлом&amp;quot;.&lt;br /&gt;И для того, чтобы увидеть новые данные графика, приходится постоянно скролить график, что очень не удобно, особенно, на тиках.&lt;br /&gt;&lt;br /&gt;Как с этим быть?&lt;br /&gt;Заранее спасибо.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2035/</id>
    <title type="text">как узнать время изменения инструмента</title>
    <published>2011-10-19T13:20:36Z</published>
    <updated>2011-10-19T13:20:36Z</updated>
    <author>
      <name>sergun</name>
      <uri>https://stocksharp.ru/users/6139/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">В логике стратегии слежу за изменениями security.BestBid и security.BestAsk с помощью SecurityChanged.&lt;br /&gt;&lt;br /&gt;Внимание вопросы :-):&lt;br /&gt;1. Придут ли все накопленные за время разрыва соединения изменения (вызовы SecurityChanged), после его восстановления?&lt;br /&gt;2. Возможно ли узнать реальное время возникновения каждого такого изменения? Если да, то как?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2034/</id>
    <title type="text">проблема с получением сделок и отправкой транзакций</title>
    <published>2011-10-19T12:00:14Z</published>
    <updated>2011-10-19T12:00:14Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Все проблемы относятся к одному запуску робота и стратегии. Версия - 4.0.3&lt;br /&gt;Описание проблемы.&lt;br /&gt;1)Не сработала команда CancelActiveOrders(); Робот должен был снять заявку и поставить новую. Новая заявка была поставлена, а старая не была снята. &lt;br /&gt;2)Не все сделки пришли в робота. Сделка с номером заявки 42790499 отсутсвует в логе, хотя она совершена в рамках стратегии. И как раз эта заявка не была снята роботом, о чем писалось в п. 1.&lt;br /&gt;3)Робот имеет несколько стратегий и отслеживает сделки в общем виде так и разделяя их для каждой стратегии. Все сделки попали в общую систему учета(графического отпображения), в том числе и та, про которую я писал во втором пункте, но ни одна сделка не попала в систему учета(графического отпображения) стратегии.&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;

private void OnNewMyTrades(IEnumerable&amp;lt;MyTrade&amp;gt; myTrades)
		{
			this.GuiAsync(() =&amp;gt;
			              {
			              	this.MyTrades.AddRange(myTrades);
			              	svMyTrades.ScrollToEnd();
			              });
			RefreshOrders();
		}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&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;

this.GuiAsync(() =&amp;gt;
				              {
				              	foreach(MyTrade m in myTrades){
				              		this.MyTrades.Add(new MyTradeStrategy(m, strategy.Name));
				              	}
				              	svMyTrades.ScrollToEnd();
				              });
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;4)Также ни разу не сработал обработчик события strategy.NewMyTrades.&lt;br /&gt;Ничего такого раньше не наблюдалось.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2033/</id>
    <title type="text">4.04 Ошибки в логе QuikTrader</title>
    <published>2011-10-18T15:30:09Z</published>
    <updated>2011-10-18T15:30:09Z</updated>
    <author>
      <name>sergun</name>
      <uri>https://stocksharp.ru/users/6139/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">При запуске экспорта ошибок в логе.&lt;br /&gt;Квик 5.24.0.58, стокшарп 4.04, info.wnd из примеров.&lt;br /&gt;&lt;br /&gt;Много вот таких сообщений:&lt;br /&gt;&amp;quot;Инструмент с кодом **** для бумажной позиции не найден &amp;quot;(для MSNG, SCOH, RU14APTK1007 и др. инструментов)&lt;br /&gt;&lt;br /&gt;По нескольким своим заявкам и стоп-заявкам (были выставлены еще ранее, не через стокшарп, по инструменту RIZ1):&lt;br /&gt;&amp;quot;Order с номером &amp;#39;*******&amp;#39; дублируется в полученном DDE пакете.&amp;quot;&lt;br /&gt;&lt;br /&gt;Что делать?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2032/</id>
    <title type="text">MonitorWindow - мониторинг сообщений</title>
    <published>2011-10-18T13:27:16Z</published>
    <updated>2011-10-18T13:27:16Z</updated>
    <author>
      <name>bonzero</name>
      <uri>https://stocksharp.ru/users/27701/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <content type="html">Доброго дня.&lt;br /&gt;&lt;br /&gt;1. Никак не могу разобраться как добавить в приложение окно MonitorWindow, чтобы видеть все сообщения.&lt;br /&gt;var monitor = new MonitorWindow(); ругается, что не находит MonitorWindow.&lt;br /&gt;&lt;br /&gt;Что-то подключить забыл может?&lt;br /&gt;&lt;br /&gt;А как в .xaml он описывается?&lt;br /&gt;&lt;br /&gt;Я просто в примерах не нашел ничего такого. Да и еще у меня для некоторых примеров не показывается окно дезигнера. ;( Уж такой я новичок глупый видимо.&lt;br /&gt; </content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2031/</id>
    <title type="text">Подскажите , что не так:  	Почему UXZ1@RTS, а не  UXZ1@UX</title>
    <published>2011-10-18T13:11:21Z</published>
    <updated>2011-10-18T13:11:21Z</updated>
    <author>
      <name>lesser</name>
      <uri>https://stocksharp.ru/users/6095/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Хочу что бы у меня считалась дельта каждой позиции .&lt;br /&gt;Так как только изучаю С# и S# ,опыта никакого, не придумал ничего другого чем создать класс наследник :&lt;br /&gt;&lt;br /&gt;    public class POS : Position&lt;br /&gt;    {&lt;br /&gt;       public decimal delta;&lt;br /&gt;&lt;br /&gt;       public POS()&lt;br /&gt;       {&lt;br /&gt;           delta = 0;&lt;br /&gt;       }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;Теперь выводить позиции пробую так :&lt;br /&gt;&lt;br /&gt;              this.Trader.NewPositions += positions =&amp;gt;&lt;br /&gt;                          {&lt;br /&gt;                               POS pos = new POS() ;                     &lt;br /&gt;                                       foreach (Position p in positions)&lt;br /&gt;                                       {&lt;br /&gt;                                           pos.Security = p.Security;&lt;br /&gt;                                           pos.delta = TraderHelper.Delta(p.Security);&lt;br /&gt;                                           this.Positions.Add(pos);&lt;br /&gt;                                       }&lt;br /&gt;                           };&lt;br /&gt;&lt;br /&gt;И получаю вот такое :  добавляю картинку &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Подскажите мож я не в те дебри полез , может можна както подругому :)</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2029/</id>
    <title type="text">Возможно, проблема с SMA. Прошу меня проверить</title>
    <published>2011-10-17T19:46:43Z</published>
    <updated>2011-10-17T19:46:43Z</updated>
    <author>
      <name>Daenur</name>
      <uri>https://stocksharp.ru/users/28118/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Начал разбираться с проектом, немного переделываю примеры под свои задачи. Для начала решил разобраться с индикаторами и их отрисовкой и столкнулся с проблемой - короткую SMA взял с периодом 1, на последнем баре ее значение иногда не совпадает с ценой закрытия бара. Подключение - к боевому серверу, данные за день приходят небольшими порциями, бары отрисовываются сразу по их приходу. После прихода нескольких порций данных нажимаю кнопку &amp;quot;Старт&amp;quot;, которая в будущем будем запускать стратегию, а пока что просто отрисовывает скользящие средние.&lt;br /&gt;&lt;br /&gt;Вот код:&lt;br /&gt;&lt;br /&gt;private void btnRunStrategy_Click(object sender, RoutedEventArgs e)&lt;br /&gt;		{&lt;br /&gt;			// Создаем торговую стратегию, скользящие средние&lt;br /&gt;			this.currentStrategy = new SmaStrategy(candleManager, new SimpleMovingAverage(20), new SimpleMovingAverage(1), this.currentTimeFrame, this.candleToken)&lt;br /&gt;			{&lt;br /&gt;				Volume = 1,&lt;br /&gt;				Security = this.SelectedSecurity,&lt;br /&gt;				Portfolio = (Portfolio)this.cbPortfolios.SelectedItem,&lt;br /&gt;				Trader = this.trader,&lt;br /&gt;			};&lt;br /&gt;&lt;br /&gt;			currentStrategy.Log += OnLog;&lt;br /&gt;			currentStrategy.NewOrder += new Action&amp;lt;Order&amp;gt;(currentStrategy_NewOrder);&lt;br /&gt;			currentStrategy.PropertyChanged += new PropertyChangedEventHandler(currentStrategy_PropertyChanged);&lt;br /&gt;&lt;br /&gt;			int index = 0;&lt;br /&gt;			IEnumerable&amp;lt;Candle&amp;gt; tmpCandles = candleManager.GetCandles(this.candleToken);&lt;br /&gt;&lt;br /&gt;			// начинаем вычислять скользящие средние&lt;br /&gt;			foreach (Candle candle in tmpCandles)&lt;br /&gt;			{&lt;br /&gt;				currentStrategy.LongSma.Add(candle.ClosePrice);&lt;br /&gt;				currentStrategy.ShortSma.Add(candle.ClosePrice);&lt;br /&gt;&lt;br /&gt;				// если все скользящие сформировались, то начинаем их отрисовывать&lt;br /&gt;				if (index &amp;gt;= currentStrategy.LongSma.Length)&lt;br /&gt;					DrawSmaLines(candle.Time);&lt;br /&gt;&lt;br /&gt;				index++;&lt;br /&gt;&lt;br /&gt;				if (currentStrategy.ShortSma.Values[currentStrategy.ShortSma.Values.Count - 1] != candle.ClosePrice)&lt;br /&gt;					MessageBox.Show(this, &amp;quot;@@@1&amp;quot;);&lt;br /&gt;&lt;br /&gt;				lastCandleTime = candle.Time;&lt;br /&gt;				lastCandle = candle;&lt;br /&gt;			}&lt;br /&gt;&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;На данном этапе все ок, последнее значение ShortSma равно цене закрытия бара. Но на графике потом иногда можно видеть, что последнее значение ShortSma уже не равно цене закрытия соответствующего бара, условие (currentStrategy.ShortSma.Values[currentStrategy.ShortSma.Values.Count - 1] != candle.ClosePrice) начинает выполняться.&lt;br /&gt;&lt;br /&gt;Больше нигде в коде данные в ShortSma не добавляются и не изменяются те, что ранее были добавлены.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2028/</id>
    <title type="text">Проблема со ссылками</title>
    <published>2011-10-17T18:00:37Z</published>
    <updated>2011-10-17T18:00:37Z</updated>
    <author>
      <name>noofiz</name>
      <uri>https://stocksharp.ru/users/27721/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Добрый день,&lt;br /&gt;&lt;br /&gt;Начал делать проект с Квиком. Есть проект-библиотека, в которой вся логика и проект-ВПФ. ВПФ ссылается на библиотеку с логикой, она в свою очередь на длл Стокшарпа с Квиком. Библиотека компилится нормально, но вот ВПФ проект в упор не хочет видеть библиотеку с логикой. Точнее он ее вроде бы видит, когда ссылку добавляешь, но когда все пересобираешь, говорит, что нет ссылки на сборку. Два дня уже мучаюсь. Это что глюк студии? У меня 2010. Причем как только я убираю код Стокшарпа все начинает нормально компилироваться. И ВПФ проект начинает видеть зависимую библиотеку. Помогите, пожалуйста. Я уже два дня голову ломаю. Пробовал и проекты пересоздавать и перезапускать. не помогает. Осталось только студию переставить.[cursing] &lt;br /&gt;&lt;br /&gt;Заранее благодарен.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2027/</id>
    <title type="text">Trades.Last().Order.IsMatched()</title>
    <published>2011-10-17T15:57:47Z</published>
    <updated>2011-10-17T15:57:47Z</updated>
    <author>
      <name>Евгений</name>
      <uri>https://stocksharp.ru/users/6070/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Есть такой лог:&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;18:00:01.502 |            | IS              | Регистрация заявки - цена 142620, направление Sell, объем 6&lt;br /&gt;18:00:01.596 |            | QuikTrader      | RegisterOrder: TransactionId=39458443, Id=0, Price=142620, Balance=6, Security=RIZ1@RTS, State=None &lt;br /&gt;18:00:03.830 |            | IS              | Новая Sell сделка 38929366 по цене 144145 на 1 заявки 39458443.&lt;br /&gt;18:00:03.862 |            | IS              | Прошла сделка по цене 144145, объём 1, направление Sell.&lt;br /&gt;&lt;span class="highlight"&gt;18:00:03.862 |            | IS              | Заявка исполнена полностью: True, Направление последней заявки Sell.&lt;/span&gt;&lt;br /&gt;18:00:03.862 |            | IS              | Смена направления на Buy&lt;br /&gt;18:00:03.830 |            | QuikTrader      | New order: TransactionId=39458443, Id=989376247, Price=142620, Balance=0, Security=RIZ1@RTS, State=Done &lt;br /&gt;18:00:03.877 |            | IS              | Новая Sell сделка 38929365 по цене 144145 на 1 заявки 39458443.&lt;br /&gt;18:00:03.924 |            | IS              | Новая Sell сделка 38929367 по цене 144140 на 4 заявки 39458443.&lt;br /&gt;18:00:03.924 |            | IS              | Прошла сделка по цене 144140, объём 4, направление Sell.&lt;br /&gt;18:00:03.924 |            | IS              | Заявка исполнена полностью: True, Направление последней заявки Sell.&lt;br /&gt;18:00:03.924 |            | IS              | Смена направления на Buy&lt;br /&gt;18:00:03.971 |            | IS              | Прошла сделка по цене 144145, объём 1, направление Sell.&lt;br /&gt;18:00:03.971 |            | IS              | Заявка исполнена полностью: True, Направление последней заявки Sell.&lt;br /&gt;18:00:03.971 |            | IS              | Смена направления на Buy&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;И такой код:&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;
 private void OnNewMyTrades(IEnumerable&amp;lt;MyTrade&amp;gt; trades)
        {

            foreach (var trade in trades)
            {
                AddLog(new LogMessage(this, DateTime.Now, ErrorTypes.None, &amp;quot;Прошла сделка по цене {0}, объём {1}, направление {2}.&amp;quot;,
                       trade.Trade.Price, trade.Trade.Volume, trade.Order.Direction));
            }

            AddLog(new LogMessage(this, DateTime.Now, ErrorTypes.None, &amp;quot;Заявка исполнена полностью: {0}, Направление последней заявки {1}.&amp;quot;,
                      trades.Last().Order.IsMatched(), trades.Last().Order.Direction));

            // смотрим последнюю сделку, следующая должна быть противоположная
            if (trades.Last().Order.IsMatched() &amp;amp;&amp;amp; trades.Last().Order.Direction == OrderDirections.Buy)
            {
                CurrentDirection = OrderDirections.Sell;
                AddLog(new LogMessage(this, DateTime.Now, ErrorTypes.None,  &amp;quot;Смена направления на {0}&amp;quot;,  OrderDirections.Sell));

            }
            else if (trades.Last().Order.IsMatched() &amp;amp;&amp;amp; trades.Last().Order.Direction == OrderDirections.Sell)
            {
                CurrentDirection = OrderDirections.Buy;
                 AddLog(new LogMessage(this, DateTime.Now, ErrorTypes.None, &amp;quot;Смена направления на {0}&amp;quot;,  OrderDirections.Buy));

                for (int i = 0; i &amp;lt; base.ChildStrategies.Count; i++)
                {
                  
                    base.ChildStrategies[i].Stop();
                   
                    AddLog(new LogMessage(this, DateTime.Now, ErrorTypes.None,  &amp;quot;Стратегия - {0} остановлена&amp;quot;, i));
                }
                return;
            }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Почему после сделки с объемом 1, выставленная заявка на объем 6, считается исполненной?&lt;br /&gt;&lt;br /&gt;А в этом логе наоборот, после последней сделки выводит, что заявка не исполнена&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;15:44:56.893 |            | TPS             | Регистрация новой заявки на Sell с ценой 145800 и объемом 6.&lt;br /&gt;15:44:56.909 |            | QuikTrader      | RegisterOrder: TransactionId=39458442, Id=0, Price=145800, Balance=6, Security=RIZ1@RTS, State=None &lt;br /&gt;15:44:56.955 |            | TPS             | Заявка 39458442 на Sell отправлена с ценой 145800 объемом 6.&lt;br /&gt;15:44:57.330 | Warning    | TPS             | Заявка 39458442 не имеет состояния.&lt;br /&gt;15:44:57.612 | Warning    | TPS             | Заявка 39458442 не имеет состояния.&lt;br /&gt;15:44:58.065 | Warning    | TPS             | Заявка 39458442 не имеет состояния.&lt;br /&gt;15:44:58.205 | Warning    | TPS             | Заявка 39458442 не имеет состояния.&lt;br /&gt;15:44:58.424 | Warning    | TPS             | Заявка 39458442 не имеет состояния.&lt;br /&gt;15:44:58.862 | Warning    | TPS             | Заявка 39458442 не имеет состояния.&lt;br /&gt;15:44:58.862 | Warning    | TPS             | Заявка 39458442 не имеет состояния.&lt;br /&gt;15:44:59.080 | Warning    | TPS             | Заявка 39458442 не имеет состояния.&lt;br /&gt;15:44:59.190 | Warning    | TPS             | Заявка 39458442 не имеет состояния.&lt;br /&gt;15:44:59.393 |            | QuikTrader      | New order: TransactionId=39458442, Id=988400383, Price=145800, Balance=6, Security=RIZ1@RTS, State=Active &lt;br /&gt;15:44:59.877 |            | IS              | Новая Sell сделка 38842987 по цене 145800 на 3 заявки 39458442.&lt;br /&gt;15:44:59.924 |            | IS              | Прошла сделка по цене 145800, объём 3, направление Sell.&lt;br /&gt;15:44:59.924 |            | IS              | Заявка исполнена полностью: False, Направление последней заявки Sell.&lt;br /&gt;15:44:59.924 |            | BS              | Новая Sell сделка 38842987 по цене 145800 на 3 заявки 39458442.&lt;br /&gt;15:44:59.924 |            | BS              | Новая Sell сделка 38842987 по цене 145800 на 3 заявки 39458442.&lt;br /&gt;15:44:59.924 |            | TPS             | Новая Sell сделка 38842987 по цене 145800 на 3 заявки 39458442.&lt;br /&gt;15:45:00.065 |            | IS              | Новая Sell сделка 38842992 по цене 145800 на 1 заявки 39458442.&lt;br /&gt;15:45:00.065 |            | IS              | Прошла сделка по цене 145800, объём 1, направление Sell.&lt;br /&gt;15:45:00.065 |            | IS              | Заявка исполнена полностью: False, Направление последней заявки Sell.&lt;br /&gt;15:45:00.065 |            | BS              | Новая Sell сделка 38842992 по цене 145800 на 1 заявки 39458442.&lt;br /&gt;15:45:00.065 |            | BS              | Новая Sell сделка 38842992 по цене 145800 на 1 заявки 39458442.&lt;br /&gt;15:45:00.065 |            | TPS             | Новая Sell сделка 38842992 по цене 145800 на 1 заявки 39458442.&lt;br /&gt;15:45:00.377 |            | TPS             | Позиция изменилась на -3.&lt;br /&gt;15:45:00.393 |            | TPS             | Позиция изменилась на -4.&lt;br /&gt;15:45:00.518 |            | IS              | Новая Sell сделка 38842995 по цене 145800 на 1 заявки 39458442.&lt;br /&gt;15:45:00.518 |            | IS              | Прошла сделка по цене 145800, объём 1, направление Sell.&lt;br /&gt;15:45:00.518 |            | IS              | Заявка исполнена полностью: False, Направление последней заявки Sell.&lt;br /&gt;15:45:00.518 |            | BS              | Новая Sell сделка 38842995 по цене 145800 на 1 заявки 39458442.&lt;br /&gt;15:45:00.518 |            | BS              | Новая Sell сделка 38842995 по цене 145800 на 1 заявки 39458442.&lt;br /&gt;15:45:00.518 |            | TPS             | Новая Sell сделка 38842995 по цене 145800 на 1 заявки 39458442.&lt;br /&gt;15:45:00.549 |            | TPS             | Позиция изменилась на -5.&lt;br /&gt;15:45:00.721 |            | IS              | Новая Sell сделка 38843002 по цене 145800 на 1 заявки 39458442.&lt;br /&gt;15:45:00.721 |            | IS              | Прошла сделка по цене 145800, объём 1, направление Sell.&lt;br /&gt;&lt;span class="highlight"&gt;15:45:00.721 |            | IS              | Заявка исполнена полностью: False, Направление последней заявки Sell.&lt;/span&gt;&lt;br /&gt;15:45:00.721 |            | BS              | Новая Sell сделка 38843002 по цене 145800 на 1 заявки 39458442.&lt;br /&gt;15:45:00.721 |            | BS              | Новая Sell сделка 38843002 по цене 145800 на 1 заявки 39458442.&lt;br /&gt;15:45:00.721 |            | TPS             | Новая Sell сделка 38843002 по цене 145800 на 1 заявки 39458442.&lt;br /&gt;15:45:00.737 |            | TPS             | Позиция изменилась на -6.&lt;br /&gt;15:45:00.737 |            | TPS             | Заканчиваем котирование с неисполненным объемом равный 0.&lt;br /&gt;15:45:00.768 |            | BS              | Стратегия останавливается.&lt;br /&gt;15:45:00.784 |            | BS              | Стратегия останавливается.&lt;br /&gt;15:45:00.799 |            | TPS             | Стратегия останавливается.&lt;br /&gt;15:45:00.799 |            | TPS             | Заканчиваем котирование с неисполненным объемом равный 0.&lt;br /&gt;15:45:00.830 |            | TPS             | Заканчиваем котирование с неисполненным объемом равный 0.&lt;br /&gt;15:45:00.955 |            | BS              | Стратегия остановлена.&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2026/</id>
    <title type="text">Как поставить свой комментарий к заявке?</title>
    <published>2011-10-17T14:04:15Z</published>
    <updated>2011-10-17T14:04:15Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <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;

order.Comment = &amp;quot;Strategy&amp;quot;;
base.RegisterOrder(order);
WriteDiagnostics(order.Comment);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;В консоль выводиться мой комментарий, но у заявки в квике стоит номер учебного счета FORTS.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2025/</id>
    <title type="text">ReRegisterOrder RealTimeEmulationTrader QuikTrader</title>
    <published>2011-10-17T13:33:52Z</published>
    <updated>2011-10-17T13:33:52Z</updated>
    <author>
      <name>lshaton</name>
      <uri>https://stocksharp.ru/users/28006/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">&lt;br /&gt;В RealTimeEmulationTrader&amp;lt;QuikTrader&amp;gt; Исполнение команды &lt;br /&gt;this.ReRegisterOrder(TargetOrder1, TargetOrder111);&lt;br /&gt;не приводит к снятию заявок. TargetOrder1 остается активной и добавляется TargetOrder111.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2024/</id>
    <title type="text">Открыт стакан?</title>
    <published>2011-10-17T12:08:06Z</published>
    <updated>2011-10-17T12:08:06Z</updated>
    <author>
      <name>Serg</name>
      <uri>https://stocksharp.ru/users/484/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Приветствую. &lt;br /&gt;Подскажите плиз есть ли метод который может сказать открыт стакан или нет?&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2022/</id>
    <title type="text">codeplex commit 10601</title>
    <published>2011-10-17T08:25:20Z</published>
    <updated>2011-10-17T08:25:20Z</updated>
    <author>
      <name>Serg</name>
      <uri>https://stocksharp.ru/users/484/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Не знал куда писать решил здесь.&lt;br /&gt;&lt;br /&gt;обновился до 10601 коммита и при попытке компиляции начал получать ошибку в этом коде:&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;
    protected override void OnStarting()
    {
      foreach (Security sec in BasketSecurity.InnerSecurities)
      {
        var s = sec;
        this.When(s.Changed()).Do&amp;lt;Security&amp;gt;(SecChanged); /// ошибка здесь !!!

      }
      base.OnStarting();
    }

    private void SecChanged(Security s)
    {
      ...
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Ошибка	1	&amp;quot;void syntetictrader.SynteticStrategy.SecChanged(StockSharp.BusinessEntities.Security)&amp;quot; имеет неправильный возвращаемый тип</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2021/</id>
    <title type="text">&amp;apos;Exchange_Count&amp;apos; doesn&amp;apos;t exist</title>
    <published>2011-10-17T07:21:24Z</published>
    <updated>2011-10-17T07:21:24Z</updated>
    <author>
      <name>XMbIPb</name>
      <uri>https://stocksharp.ru/users/6200/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_70c86259112d4da6b8e2571205b74b57');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_70c86259112d4da6b8e2571205b74b57' style='display:none'&gt;Гидра 09:52:12.5625000 System.InvalidOperationException: The stored procedure &amp;#39;Exchange_Count&amp;#39; doesn&amp;#39;t exist.&lt;br /&gt;   at System.Data.SqlClient.SqlCommand.DeriveParameters()&lt;br /&gt;   at System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(SqlCommand command)&lt;br /&gt;   at Ecng.Data.SqlServerDatabaseProvider.DeriveParameters(DbCommand command)&lt;br /&gt;   at Ecng.Data.Database.&amp;lt;&amp;gt;c__DisplayClass7.&amp;lt;GetCommand&amp;gt;b__6(Query )&lt;br /&gt;   at Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary`2 dictionary, TKey key, Func`2 handler)&lt;br /&gt;   at Ecng.Data.Database.GetCommand(Query commandQuery, SerializationItemCollection source)&lt;br /&gt;   at Ecng.Data.HierarchicalDatabase.GetCommand(Schema schema, SqlCommandTypes type, FieldCollection keyFields, FieldCollection valueFields, SerializationItemCollection source)&lt;br /&gt;   at Ecng.Data.Database.GetCount(Schema schema)&lt;br /&gt;   at Ecng.Data.Database.GetCount[TEntity]()&lt;br /&gt;   at Ecng.Serialization.RelationManyList`1.OnGetCount()&lt;br /&gt;   at Ecng.Data.HierarchicalPageLoadList`1.OnGetCount()&lt;br /&gt;   at Ecng.Serialization.RelationManyList`1.ReadAll(Int64 startIndex, Int64 count, Field orderBy, SortDirection direction)&lt;br /&gt;   at Ecng.Serialization.RelationManyList`1.GetRange(Int64 startIndex, Int64 count, String sortExpression, SortDirection directions)&lt;br /&gt;   at Ecng.Collections.BaseListEx`1.GetRange(Int64 startIndex, Int64 count)&lt;br /&gt;   at Ecng.Serialization.RelationManyList`1.get_Count()&lt;br /&gt;   at StockSharp.Hydra.MainWindow..ctor() in E:\StockSharpReleases\StockSharp_4.0.3\Hydra\Hydra\MainWindow.xaml.cs:line 60&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;База последней версии.. подскажите куда копать?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2020/</id>
    <title type="text">Не снимаются лимитные заявки по стопам</title>
    <published>2011-10-17T06:35:26Z</published>
    <updated>2011-10-17T06:35:26Z</updated>
    <author>
      <name>Supervisor</name>
      <uri>https://stocksharp.ru/users/27975/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">При срабатывании стопа в квике на рынок выставляется лимитная заявка с некоторым проскальзыванием. Но если рынок уже &amp;quot;ушел&amp;quot;, она остается висеть. &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:plain"&gt;
Trader.CancelOrders(null, Portfolio, null, null, Security);&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Выдает ошибку:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;StockSharp.Quik.ApiException: Код ошибки Failed Сообщение Вы не можете снять данную заявку&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2019/</id>
    <title type="text">Гидра и ftp.rts</title>
    <published>2011-10-17T06:05:21Z</published>
    <updated>2011-10-17T06:05:21Z</updated>
    <author>
      <name>Dottz</name>
      <uri>https://stocksharp.ru/users/311/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">Я тут собрался сделать штуку, которая с фтп.ртс будет сделки тянуть, сортировать по инструментам и сливать все сделки в разные кучки по каждому инструменту. Смотрел, что вроде гидра тянет сделки с финама, квика и пр., про РТС вроде ничего похожего не нашел. Если нет такого функционала, мог бы помочь сделать, а то вещь вроде нужная, да и народу мож пригодилась бы. </content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2018/</id>
    <title type="text">Понравилась программа для опционов</title>
    <published>2011-10-16T13:57:08Z</published>
    <updated>2011-10-16T13:57:08Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">&lt;a href='http://s017.radikal.ru/i404/1110/26/a89c3ba7c57c.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://s017.radikal.ru/i404/1110/26/a89c3ba7c57c.jpg" style='max-width: 600px;' alt="OptionDesk" title="OptionDesk" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Качать &lt;a target="_blank" rel="nofollow" href="http://narod.ru/disk/28477879001/OptionsDesk.exe.html" title="http://narod.ru/disk/28477879001/OptionsDesk.exe.html"&gt;отсюда&lt;/a&gt;.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2017/</id>
    <title type="text">работа с колонкой LastTradePrice</title>
    <published>2011-10-15T20:45:09Z</published>
    <updated>2011-10-15T20:45:09Z</updated>
    <author>
      <name>ET</name>
      <uri>https://stocksharp.ru/users/5992/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Существует необходимость работы с колонкой &amp;quot;Цена последней сделки&amp;quot; таблицы инструментов. Инструменты не торгуются в системе QUIK (мировые индексы), &lt;br /&gt;и поэтому нет возможности работать со стаканом, единственная возможность получения данных по ним, таблица инструментов &amp;quot;цена последней сделки&amp;quot;.&lt;br /&gt;С тем как изменять метаданные, чтобы начали обрабатываться дополнительные колонки таблицы инструментов а именно LastTradePrice разобрался из примеров.&lt;br /&gt;Теперь мне нужно на основании цен последних сделок из таблицы инструментов, производить расчет по определенной формуле над несколькими инструментами.&lt;br /&gt;&lt;br /&gt;Допустим имеем 2 инструмента с кодами бумаг NYMEX.CL и miniSP500 мне необходимо по ценам последних сделок из таблицы инструментов, производить над ними расчет &lt;br /&gt;и получать расчетное значение.&lt;br /&gt;&lt;br /&gt;Не могу разобраться как можно к ним обращаться? по коду бумаги? [blush] </content>
  </entry>
</feed>