MenDel 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 1/22/2013
					
					
			
					 
					 
					
	
			ra81 Вообще ранее в стратегиях было TimeCome и на него вешаем что хотим, а не такой хитромудрый способ который поверх ваших стратегий как незнамо что прилеплен. Сейчас может убрали не смотрел сие.
  ПС: ну вот esper вам совершенно тоже самое советует. И ведь правильно советует.  Так то вы правы, но когда несколько стратегий работает и в этот момент они оказались в противоположных направлениях, зачем каждой из них крыть свои позиции, когда частично они уже покрыты друг об друга. В этой ситуации надо только остатки закрыть.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					developer_29 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 1/23/2013
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Здесь, как я понял, ищется данная текущая позиция, а если ни одной нет, то считается, что позиция нулевая (не состоим нигде). Code
try { position = _trader.Positions.FirstOrDefault(p => p.Security == SelectedSecurity).CurrentValue; }
            catch { position = 0; }
 А здесь Code
try {_trader.CancelOrders(security: SelectedSecurity);}
            catch{}
 Закрываются невыполненные заявки или закрываются уже открытые позиции? Или и то, и то? Если в предыдущем месте закрываются уже открытые позиции, то здесь они опять закрываются, если не закрылись? Или в предыдущем все неисполненные заявки отменяются, а здесь уже открытые позиции закрываются? Code
            if (position != 0)
            {            
                    if (position > 0)
                    {
                        orderDirections = OrderDirections.Sell;
                        price = SelectedSecurity.MinPrice;
                    }
                    else
                    {
                        orderDirections = OrderDirections.Buy;
                        price = SelectedSecurity.MaxPrice;
                    }
                    var order = new Order
                    {
                        Trader = _trader,
                        Portfolio = SelectedPortfolio,
                        Security = SelectedSecurity,
                        Direction = orderDirections,
                        Price = price,
                        Volume = Math.Abs(position)
                    };
                    _trader.RegisterOrder(order);
            }
 Правильно ли я Вас понял?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					MenDel 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 1/23/2013
					
					
			
					 
					 
					
	
			В данном коде я сначала проверяю позицию по моему инструменту(не по всем, а только по нужному). Затем снимаю все активные заявки, также только по моему инструменту А затем если позиция существует, я её закрываю.
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					developer_29 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 1/25/2013
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			MenDel В данном коде я сначала проверяю позицию по моему инструменту(не по всем, а только по нужному). Затем снимаю все активные заявки, также только по моему инструменту А затем если позиция существует, я её закрываю.  Спасибо, что ответили.  Хочу задать ещё пару  вопросов, если совсем не тяжело, то ответьте, пожалуйста. 1 - при подключении к Quik сразу же возникают 2 портфеля, которые я не создавал. Каким из них пользоваться и если они служат для разных целей, то для каких именно и почему у них такие странные имена? 2 - Как создать заявку, которая просто "сметает" те предолжения, которые сейчас есть, невзирая на их цену (конечно же, они должны начинаться от лучшего к худшему)? Например, когда пишем  Code
var order = this.CreateOrder(direction, Security.GetMarketPrice(direction), Volume);
 
// регистрируем заявку (обычным способом - лимитированной заявкой)
RegisterOrder(order); 
 , то покупаем по рыночной цене. А как сделать, чтобы просто всё, что есть сметала с прилавка, начиная с лучшего доступного предложения, конечно? Просто выставить цену хуже рыночной, тогда все те, что лучше, точно исполнятся, невзирая на то, что я захотел приобрести по худшей цене?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					esper 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 1/25/2013
					
					
			
					 
					 
					
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					ra81 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 1/27/2013
					
					
			
					 
					 
					
	
			MenDel ra81 Вообще ранее в стратегиях было TimeCome и на него вешаем что хотим, а не такой хитромудрый способ который поверх ваших стратегий как незнамо что прилеплен. Сейчас может убрали не смотрел сие.
  ПС: ну вот esper вам совершенно тоже самое советует. И ведь правильно советует.  Так то вы правы, но когда несколько стратегий работает и в этот момент они оказались в противоположных направлениях, зачем каждой из них крыть свои позиции, когда частично они уже покрыты друг об друга. В этой ситуации надо только остатки закрыть.  Ну так и пожалуйста, рисуете маленькую стратегию которая просто берет и все позиции кроет в заданное время в ноль по заданному чемодану. А те что торгуют просто вырубаете чуток раньше. Вот и все. Достаточно адекватно получается и без хитрых конструкций. Кода выйдет около 5 строчек в каждой стратегии. Ну и в той что кроет все чуток поболее, но тоже без фанатизма.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					MenDel 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 1/29/2013
					
					
			
					 
					 
					
	
			Народ подскажите как время точное выставлять на компе. Я думаю вы этим пользуетесь, если не жалко поделитесь кодом[blush]  А то он чет у меня совсем время криво считает, каждый вечер приходится руками выставлять.
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Moadip 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 1/29/2013
					
					
			
					 
					 
					
				 | 
			
			
				| 
					
				 | 
				
					
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					MenDel 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 1/30/2013
					
					
			
					 
					 
					
	
			Не подскажете почему при синхронизации времени подвисает робот? Точнее подвисает рабочее окно, не проверял как он в этот момент сделки со стаканом получает. И частенько вылетает ошибка, что удаленный компьютер не отвечает, может это этот сервер (time.nist.gov:123) не айс, межет можно еще какие нибудь сервера попробывать? Ошибка: Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Moadip 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 1/30/2013
					
					
			
					 
					 
					
	
			Quote:Точнее подвисает рабочее окно  Значит вы этот метод вызываете в UI потоке. И пока он не выполнится(по умолчанию 5 сек.), дальше код выполнятся не будет - от этого и подвисает. Quote:может это этот сервер (time.nist.gov:123) не айс, межет можно еще какие нибудь сервера попробывать?
   Можно синхронизировать хоть по какому серверу, хоть вручную. SyncMarketTime просто выставляет в  NowOffset временное смещение.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
				 | 
			
			
				| 
					
				 |