← Zurück

Вопрос по LeftVolume, QuotingVolume, Volume

Всем привет. Со stock# разбираюсь недавно. Если вопросы глупые то сильно не пинайте.😊

Несколько цитат из справки

Свойства LeftVolume: Объем, который осталось реализовать до завершения котирования. QuotingVolume: Объем, который необходимо скотировать. Volume: Объем, которым необходимо оперировать.

Методы NeedFinish: По умолчанию, котирование останавливается тогда, когда все контракты реализованы и LeftVolume равно 0.

Если я все правильно понимаю как это работает, то должно быть так: Мне надо скотировать 5 лотов выставляя по одному лоту. Есть QuotingVolume = 5, есть Volume = 1. Когда запускается стратегия MarketQuotingStrategy то выставляется заявка в 1 лот и котируется до тех пор пока не исполнится. Как только заявка исполнена, LeftVolume становится = 4. Выставляется следующая заявка в 1 лот, и т.д. До тех пор пока LeftVolume не станет равен 0. После этого котирование останавливается и MarketQuotingStrategy ProcessState = Stopped;

Есть класс


    class myStrategy : Strategy
    {
        protected override void OnStarting()
        {
            Security.Exchange.IsSupportAtomicReRegister = false;
            base.OnStarting();
        }

        public void addChildStrategy(OrderDirections direct, decimal quotingVol, decimal vol)
        {
            var strt = new MarketQuotingStrategy(direct, quotingVol) { PriceOffset = base.Security.MinStepSize, Volume = vol };
            ChildStrategies.Add(strt);
        }
    }

В основном коде создаю экземпляр класса myStrategy

 
            ...
            myStrat = new myStrategy() { Trader = trader, Portfolio = Portfolio.SelectedPortfolio, Security = instr1};
            myStrat.Start();

Добавляю на форму кнопку, в обработчик пишу

myStrat.addChildStrategy(OrderDirections.Sell, 5, 1);

Запускаю, нажимаю на кнопку. В стакан добавляется заявка в одни лот. Котируется до тех пор, пока не исполняется. Все. После этого заявки не выставляются.🤨

Пробую так

myStrat.addChildStrategy(OrderDirections.Sell, 1, 1);

При создании экземпляра myStrategy подписываюсь на событие OnStrategyPropertyChanged

myStrat.PropertyChanged += OnStrategyPropertyChanged;

Добавляю на форму несколько лэйблов и в обработчике пишу.

 
            this.GuiAsync(() =>
            {
                if(myStrat.ChildStrategies.Count > 0)
                {
                    lblCountChild.Content = myStrat.ChildStrategies.Count.ToString();
                    lblLeftVol.Content = ((MarketQuotingStrategy)myStrat.ChildStrategies[0]).LeftVolume;
                    lblProcState.Content = ((MarketQuotingStrategy)myStrat.ChildStrategies[0]).ProcessState; 
                }
            });

чтобы можно было посмотреть свойства дочерней стратегии. При запуске выдает эксепшен - Данный метод не поддерживается.🤨

Переделываю класс myStrategy


    class myStrategy : Strategy
    {
        protected override void OnStarting()
        {
            Security.Exchange.IsSupportAtomicReRegister = false;
            base.OnStarting();
        }

        public MarketQuotingStrategy strt;

        public void addChildStrategy(OrderDirections direct, decimal quotingVol, decimal vol)
        {
            //var strt = new MarketQuotingStrategy(direct, quotingVol) { PriceOffset = base.Security.MinStepSize, Volume = vol };
            strt = new MarketQuotingStrategy(direct, quotingVol) { PriceOffset = base.Security.MinStepSize, Volume = vol };
            ChildStrategies.Add(strt);
        }
    }

и обработчик OnStrategyPropertyChanged


            this.GuiAsync(() =>
            {
                if(myStrat.ChildStrategies.Count > 0)
                {
                    lblCountChild.Content = myStrat.ChildStrategies.Count.ToString();
                    //lblLeftVol.Content = ((MarketQuotingStrategy)myStrat.ChildStrategies[0]).LeftVolume;
                    //lblProcState.Content = ((MarketQuotingStrategy)myStrat.ChildStrategies[0]).ProcessState;
                    
                    lblLeftVol.Content = myStrat.strt.LeftVolume;
                    lblProcState.Content = myStrat.strt.ProcessState;
                }
            });

Коряво конечно, но чтобы посмотреть как работает, пойдет. Запускаю. Нажимаю кнопку. В стакан добавляется заявка в одни лот. На лэйблах показывает что дочерних стратегий - 1, объем до завершения котирования - 1, статус - started. После того как заявка исполнена, ничего не меняется.

Подключаю логирование. Результат

Получается заявка исполнена но стратегия пытается ее снять.🤔

Дальше еще интреснее. Пробую так

myStrat.addChildStrategy(OrderDirections.Sell, 2, 2);

При котировании заявка просто снимается и больше не выставляется.🤨

Помогите разобраться.

  1. За что отвечают свойства LeftVolume, QuotingVolume, Volume и как с ними работать.
  2. Как "правильно" получать доступ к свойствам дочерних стратегий.
  3. Логика работы MarketQuotingStrategy.

Заранее спасибо.

War dieses Thema hilfreich?

Thema teilen

Kommentare (3)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

vfreeman
vfreeman

Moadip: Всем привет. Со stock# разбираюсь недавно. Если вопросы глупые то сильно не пинайте.😊 Помогите разобраться.

  1. За что отвечают свойства LeftVolume и Volume и как с ними работать.
  2. Как "правильно" получать доступ к свойствам дочерних стратегий.
  3. Логика работы MarketQuotingStrategy.

Заранее спасибо.

отличный пост! буду признателен местным гуру, если просветят. еще бы один вопрос хотел добавить, возможно ответ на него был бы интересен и автору топика.

как кошерно узнать что стратегия MarketQuotingStrategy благополучнозавершилась выполнив свою задачу? как и какое событие обработать?

Serg
Serg

Проверьте правильно ли у вас настроена таблица заявок и изменяется ли состояние заявок. Решил проверить работоспособность MQS. Вначале не работало. Оказалось у меня в таблице заявок нет колонки Срок изза чего статус заявки не менялся. Поправил все заработало) Ниже переделанный SampleConsole:

namespace SampleConsole
{
	using System;
	using System.Linq;
	using System.Threading;

	using Ecng.Common;

	using StockSharp.BusinessEntities;
	using StockSharp.Quik;
	using StockSharp.Algo;
  using StockSharp.Algo.Strategies;


	class Program
	{
		private static Security _lkoh;
		private static Portfolio _portfolio;
		private static MarketDepth _depth;

		static void Main()
		{
			try
			{
				// для теста выбираем бумагу Лукойл
				const string secCode = "LKOH";

        var quikPath = @"c:\BCS_Work\QUIK\info.exe";

				if (quikPath.IsEmpty())
				{
					Console.WriteLine("Не найден ни один запущенный Quik");
					return;
				}

				Console.WriteLine("Запущенный Quik найден по пути " + quikPath);
				var account = "42354";

				using (var waitHandle = new AutoResetEvent(false))
				{
					// создаем шлюз к Quik-у
					using (var trader = new QuikTrader(quikPath))
					{
						// необходимо раскомментировать, если идет работа с РТС Стандарт
						//trader.FormatTransaction += builder => builder.RemoveInstruction(TransactionBuilder.ExecutionCondition);

						// подписываемся на событие успешного подключения
						// все действия необходимо производить только после подключения
						trader.Connected += () =>
						{
							Console.WriteLine("Подключение было произведено успешно.");

							// извещаем об успешном соединени
							waitHandle.Set();
						};

						Console.WriteLine("Производим подключение...");

						trader.Connect();

						// дожидаемся события об успешном соединении
						waitHandle.WaitOne();

						trader.NewPortfolios += portfolios =>
						{
							if (_portfolio == null)
							{
								// находим Лукойл и присваиваем ее переменной lkoh
								_portfolio = portfolios.FirstOrDefault(p => p.Name == account);

								if (_portfolio != null)
								{
									Console.WriteLine("Портфель {0} появился.", account);

									// если инструмент и стакан уже появились,
									// то извещаем об этом основной поток для выставления заявки
									if (_lkoh != null && _depth != null)
										waitHandle.Set();
								}
							}
						};

						// подписываемся на событие появление инструментов
						trader.NewSecurities += securities =>
						{
							if (_lkoh == null)
							{
								// находим Лукойл и присваиваем ее переменной lkoh
								_lkoh = securities.FirstOrDefault(sec => sec.Code == secCode);

								if (_lkoh != null)
								{
									Console.WriteLine("Инструмент Лукойл появился.");

									// запускаем экспорт стакана
									trader.RegisterQuotes(_lkoh);

									if (_portfolio != null && _depth != null)
										waitHandle.Set();
								}
							}
						};

						// подписываемся на событие появления моих новых сделок
						trader.NewMyTrades += myTrades =>
						{
							foreach (var myTrade in myTrades)
							{
								var trade = myTrade.Trade;
								Console.WriteLine("Сделка {0} по цене {1} по бумаге {2} по объему {3} в {4}.", trade.Id, trade.Price, trade.Security.Code, trade.Volume, trade.Time);
							}
						};

						// подписываемся на событие обновления стакана
						trader.QuotesChanged += depths =>
						{
							if (_depth == null && _lkoh != null)
							{
								_depth = depths.FirstOrDefault(d => d.Security == _lkoh);

								if (_depth != null)
								{
									Console.WriteLine("Стакан Лукойла появился.");

									// если портфель и инструмент уже появился, то извещаем об этом основной поток для выставления заявки
									if (_portfolio != null && _lkoh != null)
										waitHandle.Set();
								}
							}
						};

            trader.OrdersChanged += orders =>
              {
                foreach (var item in orders)
                {
                  Console.WriteLine("State {0}", item.State);
                }
              };

						Console.WriteLine("Дожидаемся появления в программе инструмента Лукойл и портфеля {0}...".Put(account));

						// запускаем экспорт по DDE
						trader.StartExport(trader.SecuritiesTable, trader.MyTradesTable, trader.EquityPositionsTable,
						                   trader.EquityPortfoliosTable, trader.OrdersTable);

						// дожидаемся появления портфеля и инструмента
						waitHandle.WaitOne();

            MarketQuotingStrategy mq = new MarketQuotingStrategy(OrderDirections.Buy, 2)
              {
                Volume = 1,
                Trader = trader,
                Security = _lkoh,
                Portfolio = _portfolio
              };
            mq.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(mq_PropertyChanged);
            mq.Start();

						while (mq.ProcessState == ProcessStates.Started)
						{
              Console.WriteLine("LeftVolume = {0}", mq.LeftVolume);
							// ждем 1 секунду
							Thread.Sleep(1000);
						}

						// останавливаем экспорт по DDE
						trader.StopExport(trader.SecuritiesTable, trader.MyTradesTable, trader.EquityPositionsTable,
						                  trader.EquityPortfoliosTable, trader.OrdersTable);
					}
				}
			}
			catch (Exception ex)
			{
				Console.WriteLine(ex);
			}

      Console.ReadKey();
		}

    static void mq_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
    {
      Console.WriteLine("{0}, {1}", e.PropertyName, sender.ToString());
    }
	}
}

upd: версия 4.0.18

Moadip
Moadip
Moadip Autor

Serg спасибо за наводку с таблицами.

Настройки загружал из конфигурационного файла. Проверял Verifier все ок. Сравнил с настройками в хелпе - один в один. Проблема оказалась в другом. По умолчанию экспорт по dde идет по всем таблицам. А я начинал с того, что добавлял на форму две кнопки - купить продать по рынку. Потом уже перешел к котированию. Поэтому экспорт делал только по нужным таблицам. Оказалось что забыл добавить таблицу "Заявки" Ешкин кот...😛 Добавил таблицу "Заявки", MQS стала отрабатывать так как я и предполагал.

Мне надо скотировать 5 лотов выставляя по одному лоту. Есть QuotingVolume = 5, есть Volume = 1. Когда запускается стратегия MarketQuotingStrategy то выставляется заявка в 1 лот и котируется до тех пор пока не исполнится. Как только заявка исполнена, LeftVolume становится = 4. Выставляется следующая заявка в 1 лот, и т.д. До тех пор пока LeftVolume не станет равен 0. После этого котирование останавливается и MarketQuotingStrategy ProcessState = Stopped;

Появилась другая проблема. Заявка переставлена, но MQS думает что нет и постоянно пишется "заявка в процессе снятия". В это время заявка в стакане болтается и не котируется. Как только исполняется, то выставляется следующая и начинает котироваться.

S               | 14.02.2012 19:40:17.154 |            | Стратегия запущена.
MQS             | 14.02.2012 19:40:23.744 |            | Стратегия запущена.
MQS             | 14.02.2012 19:40:23.747 |            | Котирование на Sell объема 5.
MQS             | 14.02.2012 19:40:23.767 |            | Цена текущей NULL и лучшей 165355.
MQS             | 14.02.2012 19:40:23.768 |            | Лучший бид 165345 и лучший аск 165360.
MQS             | 14.02.2012 19:40:23.768 |            | Регистрация новой заявки на Sell с ценой 165355 и объемом 1.
MQS             | 14.02.2012 19:40:23.785 |            | Заявка 70808573 на Sell отправлена с ценой 165355 объемом 1.
MQS             | 14.02.2012 19:40:24.115 | Внимание   | Заявка 70808573 в процессе регистрации.
MQS             | 14.02.2012 19:40:24.126 |            | Заявка 70808573 принята биржей.
MQS             | 14.02.2012 19:40:24.132 |            | Цена текущей 165355 и лучшей 165365.
MQS             | 14.02.2012 19:40:24.137 |            | Лучший бид 165345 и лучший аск 165370.
MQS             | 14.02.2012 19:40:24.137 |            | Котирование заявки 70808573 на Sell с ценой 165355 объемом 1.
MQS             | 14.02.2012 19:40:24.137 |            | Отмена заявки 70808573.
MQS             | 14.02.2012 19:40:24.234 | Внимание   | Заявка 70808573 в процессе снятия.
MQS             | 14.02.2012 19:40:24.483 |            | Заявка 70808573 была снята. Время снятия 14.02.2012 19:40:24.
MQS             | 14.02.2012 19:40:24.484 |            | Цена текущей NULL и лучшей 165350.
MQS             | 14.02.2012 19:40:24.491 |            | Лучший бид 165345 и лучший аск 165355.
MQS             | 14.02.2012 19:40:24.492 |            | Регистрация новой заявки на Sell с ценой 165350 и объемом 1.
MQS             | 14.02.2012 19:40:24.511 |            | Заявка 70808575 на Sell отправлена с ценой 165350 объемом 1.
MQS             | 14.02.2012 19:40:24.520 | Внимание   | Заявка 70808575 в процессе регистрации.
MQS             | 14.02.2012 19:40:24.597 | Внимание   | Заявка 70808575 в процессе регистрации.
MQS             | 14.02.2012 19:40:24.839 |            | Заявка 70808575 принята биржей.
MQS             | 14.02.2012 19:40:24.840 |            | Цена текущей 165350 и лучшей 165365.
MQS             | 14.02.2012 19:40:24.862 |            | Лучший бид 165345 и лучший аск 165350.
MQS             | 14.02.2012 19:40:24.862 |            | Котирование заявки 70808575 на Sell с ценой 165350 объемом 1.
MQS             | 14.02.2012 19:40:24.863 |            | Отмена заявки 70808575.
MQS             | 14.02.2012 19:40:24.864 | Внимание   | Заявка 70808575 в процессе снятия.
MQS             | 14.02.2012 19:40:25.171 |            | Заявка 70808575 была снята. Время снятия 14.02.2012 19:40:25.
MQS             | 14.02.2012 19:40:25.172 |            | Цена текущей NULL и лучшей 165345.
MQS             | 14.02.2012 19:40:25.188 |            | Лучший бид 165345 и лучший аск 165350.
MQS             | 14.02.2012 19:40:25.192 |            | Регистрация новой заявки на Sell с ценой 165345 и объемом 1.
MQS             | 14.02.2012 19:40:25.214 |            | Заявка 70808577 на Sell отправлена с ценой 165345 объемом 1.
MQS             | 14.02.2012 19:40:25.214 | Внимание   | Заявка 70808577 в процессе регистрации.
MQS             | 14.02.2012 19:40:25.276 | Внимание   | Заявка 70808577 в процессе регистрации.
MQS             | 14.02.2012 19:40:25.532 |            | Заявка 70808577 принята биржей.
MQS             | 14.02.2012 19:40:25.536 |            | Цена текущей 165345 и лучшей 165365.
MQS             | 14.02.2012 19:40:25.548 |            | Лучший бид 165335 и лучший аск 165370.
MQS             | 14.02.2012 19:40:25.548 |            | Котирование заявки 70808577 на Sell с ценой 165345 объемом 1.
MQS             | 14.02.2012 19:40:25.549 |            | Отмена заявки 70808577.
MQS             | 14.02.2012 19:40:25.550 | Внимание   | Заявка 70808577 в процессе снятия.
MQS             | 14.02.2012 19:40:25.620 | Внимание   | Заявка 70808577 в процессе снятия.
MQS             | 14.02.2012 19:40:25.852 |            | Заявка 70808577 была снята. Время снятия 14.02.2012 19:40:25.
MQS             | 14.02.2012 19:40:25.855 |            | Цена текущей NULL и лучшей 165340.
MQS             | 14.02.2012 19:40:25.870 |            | Лучший бид 165335 и лучший аск 165345.
MQS             | 14.02.2012 19:40:25.879 |            | Регистрация новой заявки на Sell с ценой 165340 и объемом 1.
MQS             | 14.02.2012 19:40:25.880 |            | Заявка 70808579 на Sell отправлена с ценой 165340 объемом 1.
MQS             | 14.02.2012 19:40:25.882 | Внимание   | Заявка 70808579 в процессе регистрации.
MQS             | 14.02.2012 19:40:25.952 | Внимание   | Заявка 70808579 в процессе регистрации.
MQS             | 14.02.2012 19:40:26.199 |            | Заявка 70808579 принята биржей.
MQS             | 14.02.2012 19:40:26.202 |            | Цена текущей 165340 и лучшей 165365.
S               | 14.02.2012 19:40:26.203 |            | Новая позиция -1.
MQS             | 14.02.2012 19:40:26.214 |            | Лучший бид 165335 и лучший аск 165380.
MQS             | 14.02.2012 19:40:26.215 |            | Новая позиция -1.
MQS             | 14.02.2012 19:40:26.215 |            | Котирование заявки 70808579 на Sell с ценой 165340 объемом 1.
MQS             | 14.02.2012 19:40:26.236 |            | Отмена заявки 70808579.
MQS             | 14.02.2012 19:40:26.275 | Внимание   | Заявка 70808579 в процессе снятия.
MQS             | 14.02.2012 19:40:26.287 |            | Позиция изменилась на -1. Оставшийся объем 4.
MQS             | 14.02.2012 19:40:26.302 |            | Заявка 70808579 полностью исполнилась. Оставшийся объем 4.
MQS             | 14.02.2012 19:40:26.309 |            | Цена текущей NULL и лучшей 165375.
MQS             | 14.02.2012 19:40:26.316 |            | Лучший бид 165335 и лучший аск 165380.
MQS             | 14.02.2012 19:40:26.317 |            | Регистрация новой заявки на Sell с ценой 165375 и объемом 1.
MQS             | 14.02.2012 19:40:26.337 |            | Заявка 70808581 на Sell отправлена с ценой 165375 объемом 1.
MQS             | 14.02.2012 19:40:26.342 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:26.398 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:26.663 |            | Заявка 70808581 принята биржей.
MQS             | 14.02.2012 19:40:26.664 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:26.712 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:27.164 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:27.733 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:28.020 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:28.283 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:28.539 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:28.807 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:29.053 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:29.307 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:29.798 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:30.060 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:30.314 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:30.574 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:30.825 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:31.076 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:31.326 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:31.584 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:31.842 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:32.090 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:32.346 | Внимание   | Заявка 70808581 в процессе снятия.
MQS             | 14.02.2012 19:40:32.592 | Внимание   | Заявка 70808581 в процессе снятия.
S               | 14.02.2012 19:40:32.837 |            | Новая позиция -2.
MQS             | 14.02.2012 19:40:32.838 |            | Новая позиция -2.
MQS             | 14.02.2012 19:40:32.839 |            | Позиция изменилась на -2. Оставшийся объем 3.
MQS             | 14.02.2012 19:40:32.839 |            | Заявка 70808581 полностью исполнилась. Оставшийся объем 3.
MQS             | 14.02.2012 19:40:32.840 |            | Цена текущей NULL и лучшей 165370.
MQS             | 14.02.2012 19:40:32.890 |            | Лучший бид 165355 и лучший аск 165385.
MQS             | 14.02.2012 19:40:32.895 |            | Регистрация новой заявки на Sell с ценой 165370 и объемом 1.
MQS             | 14.02.2012 19:40:32.902 |            | Заявка 70808582 на Sell отправлена с ценой 165370 объемом 1.
MQS             | 14.02.2012 19:40:32.904 | Внимание   | Заявка 70808582 в процессе снятия.
MQS             | 14.02.2012 19:40:32.964 | Внимание   | Заявка 70808582 в процессе снятия.
MQS             | 14.02.2012 19:40:33.249 | Внимание   | Заявка 70808582 в процессе снятия.
MQS             | 14.02.2012 19:40:33.274 |            | Заявка 70808582 принята биржей.
MQS             | 14.02.2012 19:40:33.280 | Внимание   | Заявка 70808582 в процессе снятия.
S               | 14.02.2012 19:40:33.482 |            | Новая позиция -3.
MQS             | 14.02.2012 19:40:33.483 |            | Новая позиция -3.
MQS             | 14.02.2012 19:40:33.484 |            | Позиция изменилась на -3. Оставшийся объем 2.
MQS             | 14.02.2012 19:40:33.485 |            | Заявка 70808582 полностью исполнилась. Оставшийся объем 2.
MQS             | 14.02.2012 19:40:33.485 |            | Цена текущей NULL и лучшей 165380.
MQS             | 14.02.2012 19:40:33.510 |            | Лучший бид 165355 и лучший аск 165385.
MQS             | 14.02.2012 19:40:33.510 |            | Регистрация новой заявки на Sell с ценой 165380 и объемом 1.
MQS             | 14.02.2012 19:40:33.511 |            | Заявка 70808583 на Sell отправлена с ценой 165380 объемом 1.
MQS             | 14.02.2012 19:40:33.512 | Внимание   | Заявка 70808583 в процессе снятия.
MQS             | 14.02.2012 19:40:33.633 | Внимание   | Заявка 70808583 в процессе снятия.
MQS             | 14.02.2012 19:40:33.876 |            | Заявка 70808583 принята биржей.
MQS             | 14.02.2012 19:40:33.876 | Внимание   | Заявка 70808583 в процессе снятия.
MQS             | 14.02.2012 19:40:33.891 | Внимание   | Заявка 70808583 в процессе снятия.
S               | 14.02.2012 19:40:34.135 |            | Новая позиция -4.
MQS             | 14.02.2012 19:40:34.136 |            | Новая позиция -4.
MQS             | 14.02.2012 19:40:34.136 |            | Позиция изменилась на -4. Оставшийся объем 1.
MQS             | 14.02.2012 19:40:34.137 |            | Заявка 70808583 полностью исполнилась. Оставшийся объем 1.
MQS             | 14.02.2012 19:40:34.153 |            | Цена текущей NULL и лучшей 165380.
MQS             | 14.02.2012 19:40:34.164 |            | Лучший бид 165355 и лучший аск 165385.
MQS             | 14.02.2012 19:40:34.165 |            | Регистрация новой заявки на Sell с ценой 165380 и объемом 1.
MQS             | 14.02.2012 19:40:34.177 |            | Заявка 70808584 на Sell отправлена с ценой 165380 объемом 1.
MQS             | 14.02.2012 19:40:34.178 | Внимание   | Заявка 70808584 в процессе снятия.
MQS             | 14.02.2012 19:40:34.485 |            | Заявка 70808584 принята биржей.
MQS             | 14.02.2012 19:40:34.486 | Внимание   | Заявка 70808584 в процессе снятия.
MQS             | 14.02.2012 19:40:34.497 | Внимание   | Заявка 70808584 в процессе снятия.
MQS             | 14.02.2012 19:40:34.745 | Внимание   | Заявка 70808584 в процессе снятия.
MQS             | 14.02.2012 19:40:34.994 | Внимание   | Заявка 70808584 в процессе снятия.
MQS             | 14.02.2012 19:40:35.246 | Внимание   | Заявка 70808584 в процессе снятия.
S               | 14.02.2012 19:40:35.507 |            | Новая позиция -5.
MQS             | 14.02.2012 19:40:35.508 |            | Новая позиция -5.
MQS             | 14.02.2012 19:40:35.509 |            | Позиция изменилась на -5. Оставшийся объем 0.
MQS             | 14.02.2012 19:40:35.509 |            | Заканчиваем котирование.
MQS             | 14.02.2012 19:40:35.511 |            | Стратегия останавливается.
MQS             | 14.02.2012 19:40:35.534 |            | Стратегия остановлена.

Вылечилось этим QuikTrader.IsAsyncMode = false

Но вылезла другая бага

Это если я правильно понимаю уже что то внутри stock# ?

Из выставленного объема в 5 лотов скотировался один и стратегия завершилась с ошибкой.