| VoDA 
 
   
 
						
						
					 | Дата: 29.05.2013 
						
							|  |  |  |   |  
 
 
	
			Вчера функция не сработала, зато сегодня загрузка инструментов произошла. Хотя настройки не менялись. Наткнулся на другой баг: RTS             | 29.05.2013 08:49:09.543 | Ошибка     | System.InvalidOperationException: Инструмент VTBR-09.10.09@FORTS имеет недопустимый шаг цены 0.00001. Шаг цены базового актива VTBR@FORTS равен 0.0001.at #=qjJUPQYXIV1yypTgCLhOO$kj1XX2Ux63lzcq90fRouWs6v6Hz2fZSiJRTzCDYlUC9.#=qBwaAlSsB$3N_3DVnrubSBg==(Dictionary`2 #=qAyGv67EQ5ehEKRzYpV0CLA==, DateTime #=qePY3L0KsiNMbdQLq6hkzsA==)
 at #=qjJUPQYXIV1yypTgCLhOO$kj1XX2Ux63lzcq90fRouWs6v6Hz2fZSiJRTzCDYlUC9.#=q6_M1YKs5sYyXbMRTUR6TlQ==(FTP_Client #=q8OG8aXaBnhpbzqNKHnavnQ==, DateTime #=qYGaUB$AvqlqSHpxjT1WV9A==)
 at #=qv5AkQyYPMH8DTFfr5SPYf0uH5HdWuo9td2ciOCV$gSzgLQK2v_LNTmkc0ZG8sXs9.#=q1lNyf0T9PmRVEgZzH4Z6XQ==(IDictionary`2 #=qs8l_eSsGbOLA1fNJNkxZVA==, FTP_Client #=qmh0K0vUsmhX2vSqFHkHdKg==, DateTime #=qEWsTOYO$uAlzH8yAXKzoCA==)
 at StockSharp.Algo.History.Rts.RtsHistorySource.#=qeYEnUEyo6U8NNMsYxk3c1ClgDjA3_17bR76SGjM_0Pw=.#=q006xh1jG47VUyf4wEa9IFUkjEM1QHKjhiSFYbO0YQZ8=()
 at Ecng.Common.Converter.<>c__DisplayClasse.<DoInCulture>b__d()
 at Ecng.Common.Converter.DoInCulture[T](CultureInfo cultureInfo, Func`1 func)
 at Ecng.Common.Converter.DoInCulture(CultureInfo cultureInfo, Action action)
 at StockSharp.Algo.History.Rts.RtsHistorySource.LoadTrades(DateTime date, IDictionary`2 trades)
 at StockSharp.Hydra.Rts.RtsSource.Load()
 at StockSharp.Hydra.Worker.Downloader.Download()
 
 Инструмент VTBR-09.10.09@FORTS имеет недопустимый шаг цены 0.00001. Шаг цены базового актива VTBR@FORTS равен 0.0001. Что может быть за проблема и как ее лечить?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| VassilSanych 
 
   
 
						
						
					 | Дата: 29.05.2013 
 
 
	
			VoDA Наткнулся на другой баг:Инструмент VTBR-09.10.09@FORTS имеет недопустимый шаг цены 0.00001. Шаг цены базового актива VTBR@FORTS равен 0.0001.
 Что может быть за проблема и как ее лечить?
 
 Это не "другой баг". Это - постоянный баг. Его постоянно лечат, а он постоянно появляется. Может решить проблему как-нибудь более системно?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| esper 
 
   
 
						
						
					 | Дата: 29.05.2013 
 
 
	
			VoDA Инструмент VTBR-09.10.09@FORTS имеет недопустимый шаг цены 0.00001. Шаг цены базового актива VTBR@FORTS равен 0.0001.
 Что может быть за проблема и как ее лечить?
 
 Если в настройках источника установлена галочка "Скачивать данные для инструментов РТС Стандарт", то ее надо снять. Проблема действительно появляется довольно часто, особенно на инструментах РТС Стандарт, где шаг постоянно скачет и сильно отличается от шага базового инструмента. Если у вас есть какие-то идеи как решить проблему более системно, то предлагайте.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Иван З. 
 
   
 
						
						
					 | Дата: 29.05.2013 
 
 
	
			У меня как то давным давно, вылезла подобная ошибка. Качал с Финама, Сбербанк. Я изменил шаг цены в настройках инструмента, уменьшил в 10 раз. И история закачалась полностью, без ошибок. Может это слишком простой способ, но мне помогло [biggrin] . Может ошибка другая была. А вообще, где может понадобится шаг цены, для чего он в Гидре? Его же потом в инструменте настраиваешь.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| VoDA 
 
   
 
						
						
					 | Дата: 29.05.2013 
 
 
	
			esper Если у вас есть какие-то идеи как решить проблему более системно, то предлагайте. Лить в историю ВСЕ то, что дает сервер. double все стерпит. [biggrin]  ЗЫ еще выдать ворнинг если цена не кратна шагу.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| VoDA 
 
   
 
						
						
					 | Дата: 30.05.2013 
 
 
	
			Иван З. А вообще, где может понадобится шаг цены, для чего он в Гидре? Хороший вопрос. Присоединяюсь =) Проверка правильности входящей цены (цена должна быть кратна шагу) это единственная цель наличия шага цены в Гидре?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| esper 
 
   
 
						
						
					 | Дата: 30.05.2013 
 
 
	
			Иван З. А вообще, где может понадобится шаг цены, для чего он в Гидре? Его же потом в инструменте настраиваешь. Шаг цены используется для сжатия данных. VoDA Лить в историю ВСЕ то, что дает сервер. double все стерпит. [biggrin] Как сказал выше, данные хранятся не в формате double, а в специальном сжатом виде, сохранять и считывать с некорректным шагом цены их не получится.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| VoDA 
 
   
 
						
						
					 | Дата: 30.05.2013 
 
 
	
			esper Как сказал выше, данные хранятся не в формате double, а в специальном сжатом виде, сохранять и считывать с некорректным шагом цены их не получится.
 а сжатие настолько эффективно, что эти затраты людей на программирование и CPU на сжатие/дешифровку окупаются? Прикинул, что int занимает 4 байта, double - 8. Итого сжатие от такой "упаковки" может быть максимум в 2 раза. Если хранится лонгом, то снижения нет вообще. Правда формат может статься совсем заумным и цена хранится дельтой между ценой начала дня и текущей, деленной на шаг. Тогда и short может хватить... если колебания не слишком высоки. PS Шаг может быть банально уменьшен в 100 раз. По идее должно хватить на косяки данных.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Иван З. 
 
   
 
						
						
					 | Дата: 30.05.2013 
 
 
	
			Может просто округлять до шага цены. У меня появлялась ошибка не из-за изменения цены, а из-за неправильных данных Финама. Можно пользователю предоставить выбор, что делать в данной ситуации. При появлении ошибки вылезает окошко с выбором и пояснениями. Округлить, на случай если пользователь уверен что данные источника неверны, например сбер по цене 99,5631985679 округлит до 99,56. Уменьшить шаг, на случай если шаг цены изменялся официально. Может еще какой вариант. Ну и галочку, "выполнять это действие при появлении ошибки в дальнейшем". Либо добавить такие опции в настройках инструмента.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 31.05.2013 
 
 
	
			Гидра умеет сохранять цены, если они не кратны шагу. Получается избыточность, но иногда это необходимо. Я подчеркиваю, иногда, потому что зачастую это означает неправильный поток данных. Особенно, если это касается Финама. Их сервис часто выдает неправильные цены.
 Ошибка в этом топике совсем другая. Связана с распарсиванием (а не сохранением) данных о РТС стандарте. Нужно конечно переделать тот код, но РТС стандарт скорее мерт, чем жив. Плюс ко всему, новый формат T+n скорее всего будет иметь отдельное хранилище, так как требует расширенные метаданные.
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  |