Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/22/2011
					
					
			
					 
					 
					
	
			aspirant По просьбе Михаила, хочу собрать воедино весь более-менее подробный список задач.  Пишите в эту тему, у кого что есть? Если есть задачи, которыми можно поделиться указывайте отдельно. Спасибо.  У тебя своих нет? http://stocksharp.com/fo...372/2skuvv--PlazaError/ надо разобраться, что нам skuvv принес такое [biggrin]
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					aspirant 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/22/2011
					
					
			
					 
					 
					
	
			Mikhail Sukhov У тебя своих нет?  - Доделать PlazaStream (поток репликации Плазы): получение и хранение данных, возможность сохранения и загрузки конфигов в родном формате Плазы, создание пула CP2ConnectionClass'ов для асинхронного получения данных
  - Разработать систему фильтрации данных, приходящих в потоках репликации
 
 Первое беру на себя, второе, если затяну с первым, свободно.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/24/2011
					
					
			
					 
					 
					
	
			Добавляю из старых: 
 - Составные инструменты.
  - На форуме доступна x64 версия. Нужна прозрачная поддержка (без перекомпиляции) x86 и x64
  - Документация (как xml, так и обычная). Если нужно сделать как у S#, то необходимо использовать Sandcastle.
   
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					aspirant 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 3/6/2011
					
					
			
					 
					 
					
	
			aspirant - Доделать PlazaStream (поток репликации Плазы): получение и хранение данных, возможность сохранения и загрузки конфигов в родном формате Плазы, создание пула CP2ConnectionClass'ов для асинхронного получения данных
  - Разработать систему фильтрации данных, приходящих в потоках репликации
 
 Первое беру на себя, второе, если затяну с первым, свободно.  В принципе с первым закончил.  Насчет фильтрации думаю подождать до первого внедрения.  Я теоретик, и пока не совсем представляю, по каким полям и в каком виде нужно делать фильтрацию. Если у кого-то есть мысли, пишите, или кто-то готов подхватить, рад поделиться. Сейчас готов взяться за что-то другое.  Тем более что с временем стало получше.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 3/7/2011
					
					
			
					 
					 
					
	
			aspirant В принципе с первым закончил.  Насчет фильтрации думаю подождать до первого внедрения.  Я теоретик, и пока не совсем представляю, по каким полям и в каком виде нужно делать фильтрацию. Если у кого-то есть мысли, пишите, или кто-то готов подхватить, рад поделиться.
   Ждать уже не нужно - я добавил SampleGUI. Пора уже смотреть, как работает PlazaTrader. Сейчас уже можно получить список инструментов? Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessViolationException. Забыл, что она означает. Но в памяти осталось, что-то из настроек. Нужно ли указывать логин пароль в роботе если он прописан уже в роутере?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					aspirant 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 3/7/2011
					
					
			
					 
					 
					
	
			Mikhail Sukhov  Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessViolationException. Забыл, что она означает. Но в памяти осталось, что-то из настроек.
  Скорее всего, либо VS2010 либо сама программа запущена не под админом.  Все файлы-конфиги лежат в C:\Program Files\P2FORTSGate, и для редактирования файлов требуется админский доступ.  В принципе в файле настроек можно заранее прописать все настройки (логин, пароль, сервер подключения и порт), чтобы не редактировать их на лету. Mikhail Sukhov  Нужно ли указывать логин пароль в роботе если он прописан уже в роутере?
  Нет
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 3/8/2011
					
					
			
					 
					 
					
	
			aspirant Mikhail Sukhov  Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessViolationException. Забыл, что она означает. Но в памяти осталось, что-то из настроек.
  Скорее всего, либо VS2010 либо сама программа запущена не под админом.  Все файлы-конфиги лежат в C:\Program Files\P2FORTSGate, и для редактирования файлов требуется админский доступ.  В принципе в файле настроек можно заранее прописать все настройки (логин, пароль, сервер подключения и порт), чтобы не редактировать их на лету.  Они должны лежать локально. Но это вроде при создании потока. Сейчас уже создаются сами через PlazaTrader? aspirant Mikhail Sukhov  Нужно ли указывать логин пароль в роботе если он прописан уже в роутере?
  Нет  А какой адрес? localhost? Кстати, если логин пароль не нужно указывать, на лицо необработанная ситуация с конструкторами PlazaTrader.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					aspirant 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 3/8/2011
					
					
			
					 
					 
					
	
			Mikhail Sukhov Сейчас уже можно получить список инструментов?
   Уже можно вручную подключиться к таблице opt_vcb потока FORTS_OPTINFO_REPL Code_plazaConnectionPool = new PlazaConnectionPool("localhost", 3001); _plazaStreamManager1 = new PlazaStreamManager(_plazaConnectionPool, TRequestType.RT_COMBINED_DYNAMIC, 500);
  var plazaTable = new PlazaTable(PlazaTableTypes.Position, PlazaColumns.Options, PlazaColumns.Options.GetAllColumns()); _plazaStreamManager1.AddStream("opt_vcb", plazaTable);
  _plazaStreamManager1.Start();
   Правда "маленький" нюанс: при подключении с сервера приходит ошибка (не сразу, через некоторое время).  Аналогичный код для подключения к другим таблицам, например к индексу РТС, работает без проблем.  Завтра напишу вопрос в поддержку РТС.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					aspirant 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 3/8/2011
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Mikhail Sukhov  Они должны лежать локально. Но это вроде при создании потока. Сейчас уже создаются сами через PlazaTrader?
 
  У Плаза есть конфиги программы и конфиги-схему таблиц потоков репликации.  Первые (самый главный client_router.ini) редактируются через ClientRouterConfigParser, вторые (по примеру файлов, лежащих в подпапке Scheme)  создаются на лету. Два момента:  - После редактирования первых конфигов нужно обязательно перезагружать роутер.
  - В теории создавать первые конфиги на лету тоже можно.  Но я бы не стал: путь к client_router.ini указывается в коммандной строке сервиса Windows роутера (и прописывается в системном реестре). Придется колдовать и с этим.
 
 Mikhail Sukhov  А какой адрес? localhost?
  Путь указывать к компу, на котором установлен роутер, т.е. localhost, если у тебя все на одной машине. Mikhail Sukhov  Кстати, если логин пароль не нужно указывать, на лицо необработанная ситуация с конструкторами PlazaTrader.
  Начал дебаггить. Перед вызовом Codevar srvAddress = _connection.ResolveService("FORTS_SRV");  нужно включить соединение Code_connection.Connect();  Я его добавил и обрамил комментариями
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 3/8/2011
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			aspirant Уже можно вручную подключиться к таблице opt_vcb потока FORTS_OPTINFO_REPL Code_plazaConnectionPool = new PlazaConnectionPool("localhost", 3001); _plazaStreamManager1 = new PlazaStreamManager(_plazaConnectionPool, TRequestType.RT_COMBINED_DYNAMIC, 500);
  var plazaTable = new PlazaTable(PlazaTableTypes.Position, PlazaColumns.Options, PlazaColumns.Options.GetAllColumns()); _plazaStreamManager1.AddStream("opt_vcb", plazaTable);
  _plazaStreamManager1.Start();
    Да, это очень хорошо. Но данные из потока не так интересны. Их нужно перегнать в объект Security. Как это сделать. Допустим, PlazaTrader имеет метод-обработки поступления новых данных из потока opt_vcb: Codepublic class PlazaTrader {   private void OnNewDataFromOptVcb(object[][] valuesArray)   {      base.ProcessEvents(() => // чтобы событие NewSecurities вызвалось один раз для все инструментов      {        foreach (var values in valuesArray)        {           // в GetSecurity если до этого такого инструмента не было (проверяется по значению в values[0])           // вызывается NewSecurities, если же был инструмент - SecuritiesChanged.           base.GetSecurity((string)values[0], sec =>           {              sec.Name = values[1];              sec.Code = values[2];              ...           });        }      });   } }  
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 |