| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 29.03.2011 
 
 
	
			MCTuTeJ|19951995 Михаил,а Код ReRegisterOrder(order,()=>newPrice,()=>newVolume,true)  это тоже самое, что и  КодTrader.CancelOrder(order);
 Order newOrder = new Order();
 newOrder.Portfolio=order.Portfolio;
 newOrder.Security = order.Security;
 newOrder.Price = newPrice;
 newOrder.Direction= order.Direction;
 newOrder.Volume= newVolume;
 Trader.RegisterOrder;
 
 ? Для ФОРТС нет. Для всего остального да.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 29.03.2011 
 
 
	
			MCTuTeJ|19951995 Проблема в том, что иногда заявка исполняется после проверки на исполнение, в результате чего происходит ошибка - программа пытается передвинуть исполненную заявку. Не подскажете как это лечится ?
 Отменять, дожидаться отмены, выставлять новую.
			
			
			
			
		
 | 
			
				|  |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 29.03.2011 
 
 
	
			D_Alex Кодthis.Trader.NewMyTrades += trades => this.GuiAsync(() => _myTradesWindow.Trades.AddRange(trades));
 this.Trader.NewTrades += trades => this.GuiAsync(() => _tradesWindow.Trades.AddRange(trades));
 
 в таком случае обработка этих событий идет как-то в 2 потока, или по очереди? Сами потоки ITrader в двух работают, так как синхронизация с ГУИ сделана асинхронно (GuiAsync).
			
			
			
			
		
 | 
			
				|  |  | 
			
				|  | 
		
			| 
 | 
		
			
				| MCTuTeJ|19951995 
 
   
 
						
						
					 | Дата: 29.03.2011 
 
 
	
			Mikhail Sukhov MCTuTeJ|19951995 Проблема в том, что иногда заявка исполняется после проверки на исполнение, в результате чего происходит ошибка - программа пытается передвинуть исполненную заявку. Не подскажете как это лечится ?
 Отменять, дожидаться отмены, выставлять новую. Но если к моменту отмены она уже будет исполнена всё равно ведь будет ошибка ?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 29.03.2011 
 
 
	
			MCTuTeJ|19951995 Mikhail Sukhov MCTuTeJ|19951995 Проблема в том, что иногда заявка исполняется после проверки на исполнение, в результате чего происходит ошибка - программа пытается передвинуть исполненную заявку. Не подскажете как это лечится ?
 Отменять, дожидаться отмены, выставлять новую. Но если к моменту отмены она уже будет исполнена всё равно ведь будет ошибка ? Конечно. И этот случай следовательно нужно обрабатывать.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| a.dobryn 
 
   
 
						
						
					 | Дата: 29.03.2011 
 
 
	
			Mikhail Sukhov D_Alex Кодthis.Trader.NewMyTrades += trades => this.GuiAsync(() => _myTradesWindow.Trades.AddRange(trades));
 this.Trader.NewTrades += trades => this.GuiAsync(() => _tradesWindow.Trades.AddRange(trades));
 
 в таком случае обработка этих событий идет как-то в 2 потока, или по очереди? Сами потоки ITrader в двух работают, так как синхронизация с ГУИ сделана асинхронно (GuiAsync). просто в программе по NewTrades происходит куча действий, в том числе и проверка, есть ли новые сделки (по _myTradesWindow.Trades, а они не всегда обновляются). Может быть такое, что при постоянной обработке NewTrades обработка NewMyTrades просто не успевает выполниться?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 29.03.2011 
 
 
	
			D_Alex просто в программе по NewTrades происходит куча действий, в том числе и проверка, есть ли новые сделки (по _myTradesWindow.Trades, а они не всегда обновляются). Может быть такое, что при постоянной обработке NewTrades обработка NewMyTrades просто не успевает выполниться? Сами они между собой не синхронизируются внутри QuikTrader. А вот в обработчиках у вас вполне может. Отключайте что-то, смотрите.
			
			
			
			
		
 | 
			
				|  |  | 
			
				|  | 
		
			| 
 | 
		
			
				| IlyaILH 
 
   
 
						
						
					 | Дата: 29.03.2011 
 
 
	
			Mikhail Sukhov IlyaILH Trader.NewSecurities += securities =>{
 
 foreach (Security tool in securities)
 {
 
 MessageBox.Show(tool.Id +" "+ tool.State.ToString());
 
 }
 };
 
 На этот код, мне выводится не понятно что, но предположительно данные из таблицы Все сделки.
 
 Выделенное можете как-то подробнее описать? Код выводит идентификатор инструмента и его состояние. Причем здесь сделки? Я получаю следующие сообщения по вышестоящему коду: VDSB@EQNE Trading LK20000BF1@RTS Trading и т.д. По видимому, это действительно код и состояние, но у меня в таблице инструменты таких бумаг нет (у меня только сбер и лукойл). И я заметил что, как только у меня появляется сообщение, сразу же эта VDSB проходит в таблице всех сделок, т.е я и подумал, что информация оттуда идет.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 29.03.2011 
 
 
	
			IlyaILH Я получаю следующие сообщения по вышестоящему коду:
 VDSB@EQNE Trading
 LK20000BF1@RTS Trading и т.д.
 
 По видимому, это действительно код и состояние, но у меня в таблице инструменты таких бумаг нет (у меня только сбер и лукойл). И я заметил что, как только у меня появляется сообщение, сразу же эта VDSB проходит в таблице всех сделок, т.е я и подумал, что информация оттуда идет.
 Понял. Информация об инструментах идет отовсюду. В том числе и из таблицы сделок.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Vyacheslav 
 
   
 
						
						
					 | Дата: 29.03.2011 
 
 
	
			Михаил, спасибо за Ваш огромный труд!
 Только начал изучать S#.
 Сразу вопрос: запускаю sampleconsole.exe, однако возникают ошибки:
 
 Введите номер счета, через который будет выставлена заявка: NL0011100043
 Производим подключение...
 Подключение было произведено успешно.
 Дожидаемся появления в программе инструмента Лукойл и портфеля NL0011100043...
 Инструмент Лукойл появился.
 Портфель NL0011100043 появился.
 Первоначальное значение середины спреда 0
 System.ArgumentException: Транзакции 'ACCOUNT=NL0011100043; CLIENT_CODE=S#; TRAN
 S_ID=83785079; CLASSCODE=QJSIM; SECCODE=LKOH; QUANTITY=1; OPERATION=B; TYPE=L; A
 CTION=NEW_ORDER; PRICE=0; EXECUTION_CONDITION=PUT_IN_QUEUE;' не была зарегистрир
 ована. Причина 'Цена заявки должна быть положительна'.
 Parameter name: transactionTxt
 at #=qoXwOPiKu6rKxfqRbyQH_8kmNOB382r_Z62UoStG__20=.#=qqqjfNu5FDvUnmIHLI7eIpqU
 LYCdQ6s45iJpvRMufTTo=(String #=qMyxjjZn7gcLlgrKmKE6fdw==, OrderStatus& #=qfMzUMV
 woA9vTKeRIC2yVBg==, UInt32& #=qx89Qmj8$YdXkVw2g47iBHA==, Int64& #=qru3jL$hLUeCws
 hCq6a0lcA==, String& #=qJTAyuLuvPwQ9HQzhdHWM2g==)
 at Ecng.Trading.Quik.QuikTrader.#=q54MTj4O0HyGlsuBk4LMgvyLClWnXw07g5l8N_CZjZX
 o=(Order #=qfB2F85tURLB4YdJcjKMYgg==, TransactionBuilder #=qk_SbqcrTyofJ_NTgcHp8
 Fg==)
 at Ecng.Trading.Quik.QuikTrader.OnRegisterOrder(Order order)
 at Ecng.Trading.Algo.BaseTrader.RegisterOrder(Order order)
 at SampleConsole.Program.Main() in E:\StockSharpReleases\StockSharp_3.0.19\So
 urces\SampleConsole\Program.cs:line 143
 
 C:\StockSharp_3.0.19\Exe\SampleConsole>
 
 QUIK также выбрасывает сообщение:
 DDE сервер 'wrapper'.Документ 'стакан [LKOH-QJSIM]'.
 Таблица 'LKOH-QJSIM'. Произошла ошибка: Ошибка при передаче таблицы,
 вывод приостановлен. Неверные параметры.
 
 Использую Ваш info.wnd
 Verifier показывает отсутствие ошибок.
 S# 3.0.19, QUIK-JUNIOR 5.21
 Однако, такое чувство, что нет экспорта стакана по DDE.
 
 Что делать?
 
 
 
 
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  |