| RomSunZ 
 
   
 
						
						
					 | Дата: 25.02.2015 
 
 
	
			Примеры смотрите. Ваши инструменты не подписаны на рыночные данные.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Zabik 
 
   
 
						
						
					 | Дата: 25.02.2015 
						
							|  |  |  |   |  
 
 
	
			RomSunZ Примеры смотрите. Ваши инструменты не подписаны на рыночные данные. Примеры я смотрю, правда верить им или нет - не знаю. они все-равно не работают. В одних примерах никто на рыночные данные не подписывается, в других подписываются, но и там и там используют BestBid/Ask [confused]  Пробовал я уже много чего, вот например так: Код
CommonRobot1.NewSecurities += securities => this.GuiAsync(() =>
            {
                _sber = securities.FirstOrDefault(s => s.Id == "SBER@TQBR");
                _vtbr = securities.FirstOrDefault(s => s.Id == "VTBR@TQBR");
                financial.Items.Add(_sber);
                financial.Items.Add(_vtbr);
                if (_sber != null)
                {
                    CommonRobot1.RegisterMarketDepth(_sber);
                    CommonRobot1.RegisterSecurity(_sber);
                    var pri = _sber.BestAsk.Price;
                }
                if (_vtbr != null)
                {
                    CommonRobot1.RegisterSecurity(_vtbr);
                }
            }); С той же ошибкой во время выполнения выделяет строчку var pri = _sber.BestAsk.Price; Читаю букварь: "RegisterSecurity - метод. Начать получать новую информацию (например, LastTrade или BestBid) по инструменту." Подскажите по крайней мере причину ошибки. Я так понимаю, что в моем случае BestAsk так и остается равным null, поэтому и ошибка выскакивает? Пробовал так же подписываться и на обновления стакана, присваивал переменной значение внутри него - та же ошибка [crying] . Самое обидно, что это последнее что мне нужно от библиотеки StockSharp, остальное реализуется без нее. 
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Zabik 
 
   
 
						
						
					 | Дата: 25.02.2015 
 
 
	
			Ну да, так и есть, написал следующее:  Код
CommonRobot1.NewSecurities += securities => this.GuiAsync(() =>
            {
                _sber = securities.FirstOrDefault(s => s.Id == "SBER@TQBR");
                _vtbr = securities.FirstOrDefault(s => s.Id == "VTBR@TQBR");
                financial.Items.Add(_sber);
                financial.Items.Add(_vtbr);
                if (_sber != null)
                {
                    CommonRobot1.RegisterMarketDepth(_sber);
                    CommonRobot1.RegisterSecurity(_sber);
                    if (_sber.LastTrade != null)
                    {
                        var pri = _sber.LastTrade.Price;
                        info2.Content = pri.ToString();
                    }
                }
                if (_vtbr != null)
                {
                    CommonRobot1.RegisterSecurity(_vtbr);
                }
            }); Теперь ошибки нет, но и цен нет, значит _sber.LastTrade так и остается равным null [laugh] . Plz help!
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Иван З. 
 
   
 
						
						
					 | Дата: 25.02.2015 
 
 
	
			подпишитесь на  Код
CommonRobot1.SecuritiesChanged+= securities => и там поищите, может поможет. 
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Zabik 
 
   
 
						
						
					 | Дата: 25.02.2015 
 
 
	
			Иван З. подпишитесь на  Код
CommonRobot1.SecuritiesChanged+= securities => и там поищите, может поможет.  Не помогло [blush]  Заметил, что ошибка отсутствует, если просить не BestBid.Price, а например _sber.Volume, но выдает все-равно 0
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| RomSunZ 
 
   
 
						
						
					 | Дата: 25.02.2015 
 
 
	
			Запустите пример quik sample и если там все работает (получение последней сделки и лучшие цены), посмотрите код и перенесите его в свой робот.
			
			
			
			
		
 | 
			
				|  |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Zabik 
 
   
 
						
						
					 | Дата: 25.02.2015 
 
 
	
			RomSunZ Запустите пример quik sample и если там все работает (получение последней сделки и лучшие цены), посмотрите код и перенесите его в свой робот. Так, ну вот уже что-то [biggrin] , спасибо! По дефолту подкачивается всего 5 параметров по инструменту, а вот после нажатия кнопки level1 по выбранному инструменту подкачиваются и остальные параметры и стакан. Конечно при разборе этого примера я не обращал внимания на эту кнопку, щас посмотрю что там спрятано [cool] 
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Zabik 
 
   
 
						
						
					 | Дата: 25.02.2015 
 
 
	
			Так, ну нового там ничего нет. Все как и у меня:  Код
CommonRobot1.RegisterSecurity(_usd);
                    CommonRobot1.RegisterTrades(_usd); В общем поковырялся, вроде заработало, но пока в основном возвращает нули, может потому что биржа уже не работает - завтра посмотрим. А вообще так до конца и не понятно, почему ошибка вылазит именно на BestBid.Price а на просто BestBid нет? Короче, пока надо понять подгружает ли он мне реальные данные или просто по дефолту, но это завтра.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| RomSunZ 
 
   
 
						
						
					 | Дата: 26.02.2015 
 
 
	
			Zabik Так, ну нового там ничего нет. Все как и у меня:  Код
CommonRobot1.RegisterSecurity(_usd);
                    CommonRobot1.RegisterTrades(_usd); В общем поковырялся, вроде заработало, но пока в основном возвращает нули, может потому что биржа уже не работает - завтра посмотрим. А вообще так до конца и не понятно, почему ошибка вылазит именно на BestBid.Price а на просто BestBid нет? Короче, пока надо понять подгружает ли он мне реальные данные или просто по дефолту, но это завтра. Потому что у Вас BestBid==null
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Zabik 
 
   
 
						
						
					 | Дата: 02.03.2015 
 
 
	
			RomSunZ Потому что у Вас BestBid==null
 Поковырявшись понял что так и есть. Но вот почему не могу понять. [blush]  От безисходности перепахал под себя пример Sample. Все работает, все цены, объемы и т.п. в таблицу SecurityPicker идут, но видимо с помощью какого-то волшебства, т.к. тут же рядом с этой таблицей пытаюсь вбить в текстбокс _sber.LastTrade.Price и опять эта ошибка, и потому что LastTrade == null. Но как он может быть пустым если в таблицу рядом вот они идут значения по последним сделкам я не понимаю. [cursing]  Подскажите, может есть какая-то возможность взглянуть на код этой волшебной таблицы SecurityPicker?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  |