| a.dobryn 
 
   
 
						
						
					 | Дата: 25.01.2011 
 
 
	
			в классе Trade есть член ExtensionInfo типа IDictionary<TKey, TValue>. А как узнать, какие ключи там есть? Конкретно мне нужно узнать, по какому лимиту была выставлена сделка
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 25.01.2011 
 
 
	
			D_Alex в классе Trade есть член ExtensionInfo типа IDictionary<TKey, TValue>. А как узнать, какие ключи там есть? Конкретно мне нужно узнать, по какому лимиту была выставлена сделка Значение в ExtensionInfo так просто не попадают. Необходимо заранее настраивать ДДЕ метаданные через QuikTrader.TradesTable. Здесь  это рассказывается как сделать. И обращаться в последствии нужно так: Кодvar someValue = someTrade.ExtensionInfo[DdeTradeColumns.SomeColumn]; | 
			
				|  |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 25.01.2011 
 
 
	
			Valdis я что то не пойму , почему событие Trader.PositionsChangedвызывается и при выставлении заявок и при исполнении их и даже просто, когда ни чего с позициями/заявками не происходит ?
 
 События вызываются всегда, когда Квик через ДДЕ посылает обновление таблицы с позициями. А происходит это не только тогда, когда происходит сделка. В этой таблице есть и поля, которые изменяются постоянно.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| gs 
 
   
 
						
						
					 | Дата: 25.01.2011 
 
 
	
			У меня вопрос к знатокам C# и Trans2Quik.
 У меня автомат работает с квиком через файловый ввод заявок и работают три разных Квика. Я решил попробовать использовать Trans2Quik.
 Правильно ли я понимаю, что при этом мне нужно писать разные классы-врапперы Trans2Quik для каждой TRans2Quik.dll ?
 Ну, например, что то вроде такого:
 
 public interface ITrans2Quik
 {
 // члены интерфейса
 }
 
 // TRANS2QUIK_1.DLL
 public class Trans2Quik_1 : ITrans2Quik
 {
 private readonly string _pathToQuik;
 
 [DllImport("TRANS2QUIK_1.DLL", EntryPoint = "_TRANS2QUIK_CONNECT@16", CallingConvention = 					CallingConvention.StdCall)]
 public static extern long connect(string lpcstrConnectionParamsString, ref long pnExtendedErrorCode,
 byte[] lpstrErrorMessage, UInt32 dwErrorMessageSize);
 // и т.д.
 }
 
 // TRANS2QUIK_2.DLL
 public class Trans2Quik_2  : ITrans2Quik
 {
 private readonly string _pathToQuik;
 
 [DllImport("TRANS2QUIK_2.DLL", EntryPoint = "_TRANS2QUIK_CONNECT@16", CallingConvention = 				CallingConvention.StdCall)]
 public static extern long connect(string lpcstrConnectionParamsString, ref long pnExtendedErrorCode,
 byte[] lpstrErrorMessage, UInt32 dwErrorMessageSize);
 // и т.д.
 }
 
 Таким образом, в данной реализации для добавления нового Квика, работающего со своей TRans2Quik.dll мне нужно создавать и новый класс Trans2Quik_N.
 Дело в том, что 1-ый параметр DllImport это const string.
 
 Вопрос: Нельзя ли как то на С# динамически создавать тип Trans2Quik, но с разными значениями поля где храниться  значение "TRANS2QUIK.DLL" ?
 
 Или подскажите идею реализации добавления нового враппера при помощи создания нового экземпляра без создания нового класса.
 
 
 
 
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 26.01.2011 
 
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| a.dobryn 
 
   
 
						
						
					 | Дата: 26.01.2011 
 
 
	
			Mikhail Sukhov D_Alex в классе Trade есть член ExtensionInfo типа IDictionary<TKey, TValue>. А как узнать, какие ключи там есть? Конкретно мне нужно узнать, по какому лимиту была выставлена сделка Значение в ExtensionInfo так просто не попадают. Необходимо заранее настраивать ДДЕ метаданные через QuikTrader.TradesTable. Здесь  это рассказывается как сделать. И обращаться в последствии нужно так: Кодvar someValue = someTrade.ExtensionInfo[DdeTradeColumns.SomeColumn]; понятно, спасибо =) еще вопрос: мне нужно заменять заявку после того, как она частично исполнена. У меня есть сейчас событие NewMyTrades, но там есть данные типа Trade, а для замены заявки нужно получить тип Order. Можно ли как-то найти по сделке заявку?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Serg 
 
   
 
						
						
					 | Дата: 26.01.2011 
 
 
	
			В Trade есть данные о сделке и об ордере.
			
			
			
			
		
 | 
			
				|  |  | 
			
				|  | 
		
			| 
 | 
		
			
				| a.dobryn 
 
   
 
						
						
					 | Дата: 26.01.2011 
 
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| a.dobryn 
 
   
 
						
						
					 | Дата: 27.01.2011 
 
 
	
			как использовать trader.GuarantyCancelOrder(registeredOrder)? написано, что trader должен быть типа TraderHelper, откуда его взять?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| a.dobryn 
 
   
 
						
						
					 | Дата: 10.02.2011 
 
 
	
			еще вопрос - как определить, что заявка была именно исполнена, а не снята? State будет Done, а что еще посмотреть? При снятии заявки Balance в Order обнуляется или остается?
 upd: все, глупый вопрос, есть метод IsMatched()
 upd2: а у меня нет такого метода для order
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  |