| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 15.11.2011 
 
 
	
			InsiderHSE Насколько я понимаю, сейчас стратегия TheorPriceQuotingStrategy определяет, нужно ли что-либо делать, по правилу изменения стакана котируемого опциона.Хотелось бы, чтобы было аналогичное правило, но которое срабатывает при изменении стакана базового актива. Это возможно сделать, не имея доступа к TheorPriceQuotingStrategy?
 Может лучше на событие изменения инструмента (опциона)? Если мы котируем не по IV, зачем нам базовый актив? Имеет смысл только в том случае, если мы теор цену сами расчитываем. Вы ее сами расчитываете или берете из терминала?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| InsiderHSE 
 
   
 
						
						
					 | Дата: 15.11.2011 
 
 
	
			Mikhail Sukhov InsiderHSE Насколько я понимаю, сейчас стратегия TheorPriceQuotingStrategy определяет, нужно ли что-либо делать, по правилу изменения стакана котируемого опциона.Хотелось бы, чтобы было аналогичное правило, но которое срабатывает при изменении стакана базового актива. Это возможно сделать, не имея доступа к TheorPriceQuotingStrategy?
 Может лучше на событие изменения инструмента (опциона)? Если мы котируем не по IV, зачем нам базовый актив? Имеет смысл только в том случае, если мы теор цену сами расчитываем. Вы ее сами расчитываете или берете из терминала? Да, я ее сам рассчитываю, так как в терминале она обновляется раз в 30 секунд где-то, а за это время цена базового актива далеко убежать может...
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| InsiderHSE 
 
   
 
						
						
					 | Дата: 15.11.2011 
 
 
	
			Михаил, а как организована логика правила на изменение стакана? пробую что-то типа Код
if (NeedRegister())
{
	RegisterQuotingOrder(Order);
}
if (NeedReRegister(GetNewPrice(),GetNewVolume()))
{
	ReRegisterOrder(Order,Order.ReRegisterClone(GetNewPrice(), GetNewVolume()));
}
 не работает... Я правильно понимаю, что через метод GetNewPrice() определяется цена как теоретическая, сдвинутая на bestPriceOffset. И заявка переставляется, если разница между ценой заявки и GetNewPrice() превысит theorPriceOffset?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 15.11.2011 
 
 
	
			InsiderHSE Михаил, а как организована логика правила на изменение стакана? пробую что-то типа Код
if (NeedRegister())
{
	RegisterQuotingOrder(Order);
}
if (NeedReRegister(GetNewPrice(),GetNewVolume()))
{
	ReRegisterOrder(Order,Order.ReRegisterClone(GetNewPrice(), GetNewVolume()));
}
 не работает.. А где вы это пишите?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| InsiderHSE 
 
   
 
						
						
					 | Дата: 16.11.2011 
 
 
	
			В переопределенном OnStarting Код
this
.When(UnderlyingSecurity.MarketDepthChanged()).Do(DoQouting);
 Соответственно Код
private void DoQouting()
{
if (NeedRegister())
{
	RegisterQuotingOrder(Order);
}
if (NeedReRegister(GetNewPrice(),GetNewVolume()))
{
	ReRegisterOrder(Order,Order.ReRegisterClone(GetNewPrice(), GetNewVolume()));
}
}
 Этот метод должен быть таким же, как и в правиле на изменение стакана опциона. Однако мне не до конца понятна логика работы котировальщика. В частности, GetNewPrice() должен выдавать цену с учтом оффсета, или оффсет прибавляется при регистрации заявки и т.п.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| InsiderHSE 
 
   
 
						
						
					 | Дата: 27.11.2011 
 
 
	
			Как правильно в версии 4.0.6 запускать котирование при изменении базового актива?
 this
 .When(UnderlyingSecurity.MarketDepthChanged()).Do(ProcessQuoting);   ?
 
 нужно ли это правило добавить в коллекцию GetNotificationRules()?
 
 Чтобы котирование не производилось по изменению стакана инструмента, достаточно ли удалить правило из коллекции GetNotificationRules()?
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 27.11.2011 
 
 
	
			InsiderHSE this
 .When(UnderlyingSecurity.MarketDepthChanged()).Do(ProcessQuoting);   ?
 
 нужно ли это правило добавить в коллекцию GetNotificationRules()?
 
 Или напрямую вызываете ProcessQuoting или переопределяете GetNotificationRules
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| InsiderHSE 
 
   
 
						
						
					 | Дата: 28.11.2011 
 
 
	
			Делаю так: Код
base.OnStarting();
this.Rules.RemoveWhere(r => r.Name.Contains("Изменение стакана инструмента") || r.Name.Contains("Изменение инструмента"));
this.When(UnderlyingSecurity.MarketDepthChanged()).Do(ProcessQuoting);
 При этом ProcessQuoting вызывается, но котирования не происходит, то есть методы NeedRegister, GetNewPrice и др. не вызываются. Каким образом в версии 4.0.6 можно привязать котирование к изменению стакана базового актива?
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 28.11.2011 
 
 
	
			А в лог что-нибудь пишется? Само правило срабатывает?
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| InsiderHSE 
 
   
 
						
						
					 | Дата: 28.11.2011 
						
							|  |  |  |   |  
 
 
	
			Лог следующий: Код
17:25:03.690 | Warning    | SOQS            | Правило 'Изменение стакана инструмента SRZ1@RTS' не может быть обработано так как приостановлено исполнение правил.
17:25:03.811 | Warning    | SOQS            | Правило 'Изменение стакана инструмента SRZ1@RTS' не может быть обработано так как приостановлено исполнение правил.
17:25:04.048 | Warning    | SOQS            | Правило 'Изменение стакана инструмента SRZ1@RTS' не может быть обработано так как приостановлено исполнение правил.
17:25:04.510 | Warning    | SOQS            | Правило 'Изменение стакана инструмента SRZ1@RTS' не может быть обработано так как приостановлено исполнение правил.
17:25:05.150 |            | SOQS            | Правило 'Изменение стакана инструмента SRZ1@RTS' активировано.
17:25:10.235 |            | SOQS            | Правило 'Изменение стакана инструмента SRZ1@RTS' активировано.
17:25:10.236 |            | SOQS            | Правило 'Изменение стакана инструмента SRZ1@RTS' активировано.
17:25:11.815 |            | SOQS            | Правило 'Изменение стакана инструмента SRZ1@RTS' активировано.
 При этом методы NeedRegister, GetNewPrice не вызывались ни разу.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  |