| Alexander 
 
   
 
						
						
					 | Дата: 14.09.2011 
 
 
	
			FiNick Поднимаю старую тему, чтобы лишнего не плодить. Библиотека 3.2.11Два вопроса:
 1) Как использовать StrategyLatencyManager? В доках ничего толком не сказано, вроде как все само должно. У стратегии LatencyManager создается автоматически. Но вот массив Orders всегда пуст и самому добавить в него ордеры нельзя. Свойство Latency мэнеджера всегда 0, как и у любой заявки.
 
 2) И без LatencyManager'а видно, что заявки выставляются 5-10 секунд (это через плазу). Как так?
 
 
 Какое отношение всё это имеет к тестированию? :) 1) вызывается ли Strategy.OrderChanged? 2) у плазы похоже тормоза в последние пару дней, сам столкнулся. до этого шустро работало. отсылайте логи в ртс, как они советуют, звоните девочкам по телефону, быстро и толково отвечают.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| FiNick 
 
   
 
						
						
					 | Дата: 14.09.2011 
 
 
	
			Ну я робота тестирую, потому в тестирование, плюс раз уж тема про это создана=)
 1) Вызывается, NewOrders тоже. Поправка: свойство strategy.LatencyManager.Latency после второго-третьего ордера начинает выдавать чиселки (18 секунд задержка, я в шоке), но свойство Latency у ордеров все равно пустое
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 14.09.2011 
 
 
	
			FiNick Ну я робота тестирую, потому в тестирование Тестирование робота != Тестирование стратегии. Это форум для тестирования стратегий. Перенесу сообщение в Плазу.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Serg 
 
   
 
						
						
					 | Дата: 14.09.2011 
 
 
	
			Может немного не в тему но буду благодарен если кто ответит)Можно ли где-то пощупать плазу2, посмотреть как работает, что-то вроде демодоступа?
 Спасибо
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Alexander 
 
   
 
						
						
					 | Дата: 14.09.2011 
 
 
	
			Serg Может немного не в тему но буду благодарен если кто ответит)Можно ли где-то пощупать плазу2, посмотреть как работает, что-то вроде демодоступа?
 Спасибо
 скачиваете с codeplex'а, заказываете у ртс демодоступ.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| FiNick 
 
   
 
						
						
					 | Дата: 15.09.2011 
 
 
	
			Проблема частично решилась: стал регистрировать заявки через strategy.RegisterOrder, а не plaza.RegisterOrder. В результате, в обработчике NewMyTrades вызываю myTrade.Order.Latency, получаю чиселку. Но, если так написать: Код
var order = RegisterOrder();
var lat = order.Latency;
 получаю 0. Такое подозрение, что у неисполненых ордеров Latency 0, что странно, ведь мы измеряем скорость выставления заявки, а не исполнения.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Alexander 
 
   
 
						
						
					 | Дата: 15.09.2011 
 
 
	
			FiNick Проблема частично решилась: стал регистрировать заявки через strategy.RegisterOrder, а не plaza.RegisterOrder. В результате, в обработчике NewMyTrades вызываю myTrade.Order.Latency, получаю чиселку. Но, если так написать: Код
var order = RegisterOrder();
var lat = order.Latency;
 получаю 0. Такое подозрение, что у неисполненых ордеров Latency 0, что странно, ведь мы измеряем скорость выставления заявки, а не исполнения. Регистрировать заявку и нужно через strategy.RegisterOrder. Это делается простым вызовом RegisterOrder внутри стратегии. по коду RegisterOrder - это void (!!!) функция. она принимает order в качестве параметра, но ничего не возвращает! тот код, который вы указали вообще неверен. он не будет компилироваться. задержку у заявки можно получить только после создания и регистрации.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| FiNick 
 
   
 
						
						
					 | Дата: 15.09.2011 
 
 
	
			Забыл сказать, в данном случае RegisterOrder это переопределенный метод. Внутри создается ордер, в try конструкции отправляется на биржу, ссылка на ордер возвращается.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Alexander 
 
   
 
						
						
					 | Дата: 15.09.2011 
 
 
	
			FiNick Забыл сказать, в данном случае RegisterOrder это переопределенный метод. Внутри создается ордер, в try конструкции отправляется на биржу, ссылка на ордер возвращается. Тогда уж покажите сам метод. А заявка успевает зарегистрироваться=выставиться на биржу? Наверняка нет, отсюда и 0 latency. Выведите статус заявки перед получением Latency.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| FiNick 
 
   
 
						
						
					 | Дата: 15.09.2011 
						
							|  |  |  |   |  
 
 
	
			Код
Order RegisterOrder(OrderDirections direction, decimal volume, decimal price)
        {
            var order = new Order
            {
                Portfolio = this.Portfolio,
                Price = price,
                Security = this.Security,
                Volume = volume,
                Direction = direction,
            };
                        
            try
            {
                var t1 = DateTime.Now;
                this.RegisterOrder(order);
                var t2 = DateTime.Now;
                this.AddLog(new LogMessage(this,DateTime.Now, ErrorTypes.Warning, String.Format("Register Order: State: {0}   Id: {1}   TrId: {2}   Lat: {3}. Time: {4}   {5}",
                                                                                                order.State,
                                                                                                order.Id,
                                                                                                order.TransactionId,
                                                                                                order.Latency, t1, t2
                                                                                                )));
            }
            catch (Exception e)
            {
                this.AddLog(new LogMessage(this,DateTime.Now, ErrorTypes.Error, "Message: " + e.Message));
            }
            return order;
        } Вот результат: MS 15.09.2011 14:37:07.750 Внимание     Register Order: State: None   Id: 0   TrId: 52561517   Lat: 00:00:00. Time: 15.09.2011 14:36:58   15.09.2011 14:37:07 Хорошо, вы правы, видимо спрашивать Latency, имеет смысл только после событий NewOrders или OrdersChanged. Но кто мне тогда объяснит, чем занимается this.RegisterOrder(order) целых 9 секунд!! Я думал он дожидается результата выставления заявки. 
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  |