VoDA 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 11.09.2013
					
					
			
					 
					 
					
	
			Отвечу сам себе - для создания свечек по непрерывному фьючу (или иному инструменту) необходимо и достаточно сделать ContinuousSecurity. 
  ContinuousSecurity хранит свечки в базовых инструментах, что уменьшает расходы на хранение "составных" инструментов (нет дублирования).
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Bond 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 11.09.2013
					
					
			
					 
					 
					
	
			VoDA Отвечу сам себе - для создания свечек по непрерывному фьючу (или иному инструменту) необходимо и достаточно сделать ContinuousSecurity. 
  ContinuousSecurity хранит свечки в базовых инструментах, что уменьшает расходы на хранение "составных" инструментов (нет дублирования).  А как это будет выглядеть в коде?[rolleyes] 
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					VoDA 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 11.09.2013
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Bond А как это будет выглядеть в коде?[rolleyes]   Я создаю континиус через цикл: Код
private static readonly string[] Mounths = new[] {"H", "M", "U", "Z",}; // последовательность важна для правильной генерации имен фьючерсов
        public const int FIRST_YEAR = 2005;
        public ContinuousSecurity GenerateSecurity(decimal minStepPrice, decimal minStepSize)
        {
            var prefix = "RI";
            var securityName = prefix + "@CONTINIOUS";
            var result = new ContinuousSecurity
                             {
                                 Id = securityName,
                                 Code = securityName,
                                 Name = "ContinuousSecurity for " + securityName,
                                 MinStepPrice = minStepPrice,
                                 MinStepSize = minStepSize,
                                 MinPrice = 1,
                                 MaxPrice = 1000000,
                                 ExchangeBoard = ExchangeBoard.Forts,
                             };
            for (var year = FIRST_YEAR; year < 2020; year++)
            {
                for (var i = 0; i < 4; i ++)
                {
                    var yearPart = year%10;      // тут получаем последнюю цифру года
                    var mounth = i*3 + 3;
                    var mounthPart = Mounths[i]; // тут выбирается индекс, показывающий месяц
                    var id = prefix + mounthPart + yearPart + "@FORTS";
                    var code = prefix + "-" + (yearPart) + "." + (mounth);
                    var security = new Security
                                       {
                                           Id = id,
                                           Code = code,
                                           Name =
                                               "ContinuousSecurity for " + prefix + " expiration in " + mounth + "." +
                                               year,
                                           MinStepPrice = minStepPrice,
                                           MinStepSize = minStepSize,
                                           MinPrice = 1,
                                           MaxPrice = 1000000,
                                           ExchangeBoard = ExchangeBoard.Forts,
                                       };
                    var expiration = new DateTime(year, mounth, 7);					// переход между фьючами происходит 7-го числа
                    result.ExpirationJumps.Add(security, expiration);
                }
            }
            return result;
        }
 Переход прибит гвоздями на 7-е число. Конечно лучше дату выставлять руками, а это упрощение. Работа с таким инструментом идет через те же вызовы, что и обычный Security.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Bond 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 11.09.2013
					
					
			
					 
					 
					
	
			Спасибо за код! Интересно получилось. Вот только как ни крути лучше ручками даты выставлять. К тому же, я пришел к выводу, что лучше склеивать за день до экспирации. И в день экспирации уже работать с новым инструментом. Тогда тесты получатся более реальными.
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					VoDA 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 11.09.2013
					
					
			
					 
					 
					
	
			Bond Спасибо за код! Интересно получилось. Вот только как ни крути лучше ручками даты выставлять. К тому же, я пришел к выводу, что лучше склеивать за день до экспирации. И в день экспирации уже работать с новым инструментом. Тогда тесты получатся более реальными.  зависит от задачи ;) сделаешь руками - выкладывай на сайт :)
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Bond 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 11.09.2013
					
					
			
					 
					 
					
	
			VoDA Bond Спасибо за код! Интересно получилось. Вот только как ни крути лучше ручками даты выставлять. К тому же, я пришел к выводу, что лучше склеивать за день до экспирации. И в день экспирации уже работать с новым инструментом. Тогда тесты получатся более реальными.  зависит от задачи ;) сделаешь руками - выкладывай на сайт :)  Я уже несколько недель достаю разработчиков, прошу склейку в Гидре подремонтировать. Обычные данные и склеенные фьючерсы со свечами с Финама уже выложил в общий доступ на Яндекс диске. Как сделаю с правильными днями экспирации, тоже постараюсь выложить [wink] 
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					VoDA 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 13.09.2013
					
					
			
					 
					 
					
	
			Bond Я уже несколько недель достаю разработчиков, прошу склейку в Гидре подремонтировать. Обычные данные и склеенные фьючерсы со свечами с Финама уже выложил в общий доступ на Яндекс диске. Как сделаю с правильными днями экспирации, тоже постараюсь выложить [wink]   Тогда лучше отдельно свечки выложи. У свечек размер сильно меньше и качать проще ;)
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					VoDA 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 13.09.2013
					
					
			
					 
					 
					
	
			Bond Я уже несколько недель достаю разработчиков, прошу склейку в Гидре подремонтировать. Обычные данные и склеенные фьючерсы со свечами с Финама уже выложил в общий доступ на Яндекс диске. Как сделаю с правильными днями экспирации, тоже постараюсь выложить [wink]   А еще лучше код для создания Cont Security или таблица где выписаны называния и даты переходов между фьючами. Это намного полезнее ;) Данные у всех одинаковые, так что гонять их между компами необходимости мало. А вот результат (свечки/стратегии/etc) и места занимает меньше и полезнее =)
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 |