aspirant 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 13.03.2011
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Mikhail Sukhov Все: инструменты, заявки, сделки, тики, поза. Кастомные потоки пока не так интересны. Нужен минимум, чтобы с заявками протестить и убедиться насчет минимального функционала.  Я сейчас вынес это в отдельный метод: Кодpublic void StartListeners() {     // вот здесь как раз и заполняются метаданные для всех потоков плазы     // opt_vcb - Справочник торгуемых активов (опционов)     _plazaStreamManager.AddStream(new PlazaColumnSet(PlazaTableRegistry.OptVcb), TRequestType.RT_COMBINED_DYNAMIC);                  // Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData     _plazaStreamManager.Start(); }  Вопрос: подключаться ко всем потокам или дать возможность клиенту выбирать, что ему нужно.  Для этого я создал перечисление PlazaMarketData.  Тогда метод будет выглядеть вот так: Кодpublic void StartListeners(PlazaMarketData marketData) {     // вот здесь как раз и заполняются метаданные для всех потоков плазы
      if ((marketData & PlazaMarketData.Options) > 0)     {         // opt_vcb - Справочник торгуемых активов (опционов)         _plazaStreamManager.AddStream(new PlazaColumnSet(PlazaTableRegistry.OptVcb), TRequestType.RT_COMBINED_DYNAMIC);     }                  // Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData     _plazaStreamManager.Start(); }  
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 13.03.2011
					
					
			
					 
					 
					
	
			aspirant Вопрос: подключаться ко всем потокам или дать возможность клиенту выбирать, что ему нужно.  Для этого я создал перечисление PlazaMarketData.  Тогда метод будет выглядеть вот так: Кодpublic void StartListeners(PlazaMarketData marketData) {     // вот здесь как раз и заполняются метаданные для всех потоков плазы
      if ((marketData & PlazaMarketData.Options) > 0)     {         // opt_vcb - Справочник торгуемых активов (опционов)         _plazaStreamManager.AddStream(new PlazaColumnSet(PlazaTableRegistry.OptVcb), TRequestType.RT_COMBINED_DYNAMIC);     }                  // Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData     _plazaStreamManager.Start(); }   Я бы сделал так: Кодpublic void StartListeners(params PlazaTable[] tables) {     foreach (var table in tables)            _plazaStreamManager.Add(table, TRequestType.RT_COMBINED_DYNAMIC);                  // Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData     _plazaStreamManager.Start(); }  
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					aspirant 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 13.03.2011
					
					
			
					 
					 
					
	
			Mikhail Sukhov Я бы сделал так: Кодpublic void StartListeners(params PlazaTable[] tables) {     foreach (var table in tables)            _plazaStreamManager.Add(table, TRequestType.RT_COMBINED_DYNAMIC);                  // Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData     _plazaStreamManager.Start(); }   Да, так будет удобнее
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					aspirant 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 14.03.2011
					
					
			
					 
					 
					
	
			Утром вспомнил, почему решил подключаться к потокам через перечисление PlazaMarketData.  Хочу предложить два варианта подключения через PlazaTrader:  - Подключение к стандартным стримам, данные которых будут перегоняться в стандартные объекты.  Здесь используется метод с моей сигнатурой, чтобы контроллировать, какие потоки запрашиваются с сервера.
  - Подключение к любым потокам с настраиваемым набором колонок. Здесь используется твоя сигнатура.  Данные будут выдаваться клиенту в "сыром формате".
  
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 14.03.2011
					
					
			
					 
					 
					
	
			aspirant Утром вспомнил, почему решил подключаться к потокам через перечисление PlazaMarketData.  Хочу предложить два варианта подключения через PlazaTrader:  - Подключение к стандартным стримам, данные которых будут перегоняться в стандартные объекты.  Здесь используется метод с моей сигнатурой, чтобы контроллировать, какие потоки запрашиваются с сервера.
  - Подключение к любым потокам с настраиваемым набором колонок. Здесь используется твоя сигнатура.  Данные будут выдаваться клиенту в "сыром формате".
 
  Хм, а почему PlazaTable не использовать и для того, и для другого?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					aspirant 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 14.03.2011
					
					
			
					 
					 
					
	
			Mikhail Sukhov Хм, а почему PlazaTable не использовать и для того, и для другого?  С помощью PlazaTable я собираюсь описать все таблицы в потоках плазы папки (см. содержимое C:\Program Files (x86)\P2FORTSGate\Scheme ).  Мы ведь не собираемся перегонять в стандартные объекты все таблицы?  А если использовать только твою сигнатуру, клиент сможет запрашивать данные не только из основных таблиц (opt_vcb и т.д.), но и всякую эзотерику.  Кроме того таблицы стаканов - тоже будут описаны при помощи PlazaTable. Кстати, твой метод правильнее будет объявляться вот так: Кодpublic void StartListeners(params PlazaColumnList[] tables)  PlazaTable знает только название таблицы в потоке, название схемы и название самого потока.  С помощью PlazaColumnList я буду создавать схемы (ini-файлы).  Вчера  я хотел это делать с помощью PlazaColumnSet.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 14.03.2011
					
					
			
					 
					 
					
	
			aspirant Кстати, твой метод правильнее будет объявляться вот так: Кодpublic void StartListeners(params PlazaColumnList[] tables)   А как же PlazaTable.Columns?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					aspirant 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 14.03.2011
					
					
			
					 
					 
					
	
			Mikhail Sukhov А как же PlazaTable.Columns?  Мне кажется правильнее или удобнее будет, если один класс (PlazaTable) отвечает за описание метаданных, а другой (PlazaColumnList) - за создание наборов колоннок/полей для получения данных из потоков. Посмотри: я только что залил обновленный PlazaTableRegistry, а также всех наследников PlazaColumns, отвечающих за опционы.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 15.03.2011
					
					
			
					 
					 
					
	
			aspirant Mikhail Sukhov А как же PlazaTable.Columns?  Мне кажется правильнее или удобнее будет, если один класс (PlazaTable)  отвечает за описание метаданных, а другой (PlazaColumnList) - за  создание наборов колоннок/полей для получения данных из потоков.  Для меня выделенное - синонимы. В чем разница?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					aspirant 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 17.03.2011
					
					
			
					 
					 
					
	
			Mikhail Sukhov Для меня выделенное - синонимы. В чем разница?  Сегодня вечером постараюсь ответить. Пока другой вопрос: инструменты на примере опционов - это opt_vcb - Справочник торгуемых активов или  opt_sess_contents - Cправочник торгуемых инструментов[confused] 
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 |