ak 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/2/2012
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Столкнулся с такой же проблемой дважды причем подряд (QuikTrader, 4.0.17). Code
var takeProfit = new TakeProfitStrategy(trade, this.TakeProfitUnit) { UseQuoting = true };
var stopLoss = new StopLossStrategy(trade, StopLossUnit) { UseQuoting = true };
ChildStrategies.Add(new TakeProfitStopLossStrategy(takeProfit, stopLoss));
 Один раз для TP стратегии, второй раз для SL - симптомы те же, исполняются 2 одинаковые по цене заявки с минимальной разницей во времени. Лог одного из случаев (SL): Quote: SLS | 31.01.2012 13:13:11 || Защита активирована. SLS | 31.01.2012 13:13:11 || Регистрация защитного котирования. MQS | 31.01.2012 13:13:11 || Стратегия запущена. MQS | 31.01.2012 13:13:11 || Котирование на Sell объема 1. MQS | 31.01.2012 13:13:11 || Цена текущей NULL и лучшей 9080. MQS | 31.01.2012 13:13:11 || Лучший бид 9078 и лучший аск 9080. MQS | 31.01.2012 13:13:11 || Регистрация новой заявки на Sell с ценой 9080 и объемом 1. MQS | 31.01.2012 13:13:11 || Заявка 38516284 на Sell отправлена с ценой 9080 объемом 1. SLS | 31.01.2012 13:13:11 || Цена текущей NULL и лучшей 9080. SLS | 31.01.2012 13:13:11 || Лучший бид 9078 и лучший аск 9080. SLS | 31.01.2012 13:13:11 || Регистрация новой заявки на Sell с ценой 9080 и объемом 1. SLS | 31.01.2012 13:13:11 || Заявка 38516285 на Sell отправлена с ценой 9080 объемом 1. MQS | 31.01.2012 13:13:11 || Заявка 38516284 принята биржей. SLS | 31.01.2012 13:13:11 || Заявка 38516285 принята биржей. EmaCore | 31.01.2012 13:13:12 || Новая позиция 0. Main App | 31.01.2012 13:13:12 || Stat Changed. State: Started, PnL: -39 :(, Slippage: 1, Position: 0, Latency: 00:00:00.5404569 Main App | 31.01.2012 13:13:12 || Stat Changed. State: Started, PnL: -39 :(, Slippage: 1, Position: 0, Latency: 00:00:01.0506864 TPSLS | 31.01.2012 13:13:12 || Новая позиция -1. SLS | 31.01.2012 13:13:12 || Новая позиция -1. SLS | 31.01.2012 13:13:12 || Позиция изменилась на -1. Оставшийся объем 0. SLS | 31.01.2012 13:13:12 || Заканчиваем котирование. TPSLS | 31.01.2012 13:13:12 || Стратегия останавливается. Main App | 31.01.2012 13:13:12 || Stat Changed. State: Started, PnL: -39 :(, Slippage: 1, Position: 0, Latency: 00:00:01.0506864 TPS | 31.01.2012 13:13:12 || Заканчиваем котирование с неисполненным объемом равный 1. TPS | 31.01.2012 13:13:12 || Стратегия останавливается. TPS | 31.01.2012 13:13:12 || Стратегия остановлена. SLS | 31.01.2012 13:13:12 || Отмена заявки 38516285. SLS | 31.01.2012 13:13:12 || Стратегия останавливается. MQS | 31.01.2012 13:13:12 || Заканчиваем котирование с неисполненным объемом равный 1. MQS | 31.01.2012 13:13:12 || Стратегия останавливается. MQS | 31.01.2012 13:13:12 || Стратегия остановлена. TPSLS | 31.01.2012 13:13:12 || Стратегия остановлена. EmaCore | 31.01.2012 13:13:12 || Новая позиция -1. Main App | 31.01.2012 13:13:12 || Stat Changed. State: Started, PnL: -39 :(, Slippage: 1, Position: -1, Latency: 00:00:01.0506864 Main App | 31.01.2012 13:13:12 || Stat Changed. State: Started, PnL: -39 :(, Slippage: 1, Position: -1, Latency: 00:00:01.5628213 EmaCore | 31.01.2012 13:13:12 || Новая Sell сделка 497392045 по цене 9080 на 1 заявки 38516284. Main App | 31.01.2012 13:13:12 || Stat Changed. State: Started, PnL: -39 :(, Slippage: 1, Position: -1, Latency: 00:00:01.5628213 Main App | 31.01.2012 13:13:12 || Stat Changed. State: Started, PnL: -37 :(, Slippage: 1, Position: -1, Latency: 00:00:01.5628213 Main App | 31.01.2012 13:13:12 || I've sold 1 futures contracts at 9080 EmaCore | 31.01.2012 13:13:12 || Новая Sell сделка 497392046 по цене 9080 на 1 заявки 38516285. Main App | 31.01.2012 13:13:12 || Stat Changed. State: Started, PnL: -37 :(, Slippage: 1, Position: -1, Latency: 00:00:01.5628213 Main App | 31.01.2012 13:13:12 || Stat Changed. State: Started, PnL: -37 :(, Slippage: 1, Position: -1, Latency: 00:00:01.5628213 Main App | 31.01.2012 13:13:12 || I've sold 1 futures contracts at 9080
 
  Кто может помочь советом, как починить?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Serg 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/2/2012
					
					
			
					 
					 
					
	
			А можно посмотреть код MarketQuotingStrategy? если это квик то тут скорее всего проблема с тем что приходит раньше(заявка/сделка).
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/2/2012
					
					
			
					 
					 
					
	
			ak Quote: MQS | 31.01.2012 13:13:11 || Заявка 38516284 принята биржей. SLS | 31.01.2012 13:13:11 || Заявка 38516285 принята биржей. EmaCore | 31.01.2012 13:13:12 || Новая позиция 0.
 
  Кто может помочь советом, как починить?  А что чинить? Заявка зарегистрирована на бирже. Нужно сделать так, чтобы она не могла зарегистрироваться? По проблеме автора этого топика отписал в той ссылке, которую он привел изначально. Не понятно, зачем было кросс посты вводить.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					ak 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/2/2012
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			OK. Михаил, поясните пожалуйста еще раз. Есть стратегия: Code
var stopLoss = new StopLossStrategy(trade, StopLossUnit) { UseQuoting = true };
 Я предполагаю, что выставив фалг UseQuoting, при касании ценой StopLossUnit, стратегия SLS создаст стратегию MQS, которая, выставляя лимитные ордера, и двигая их по необходимости, добьется исполнения защитного ордера. Затем завершится сама MQS (поражденная SLS стратегией), а затем и родительская SLS. По факту исполняется 2а ордера с одинаковым объемом, причем: 1ый ордер создается MQS стратегией: Quote: MQS | 31.01.2012 13:13:11 || Регистрация новой заявки на Sell с ценой 9080 и объемом 1. MQS | 31.01.2012 13:13:11 || Заявка 38516284 на Sell отправлена с ценой 9080 объемом 1.
 
  2ой ордер создается SLS стратегией: Quote: SLS | 31.01.2012 13:13:11 || Регистрация новой заявки на Sell с ценой 9080 и объемом 1. SLS | 31.01.2012 13:13:11 || Заявка 38516285 на Sell отправлена с ценой 9080 объемом 1.
 
  Естественно, если выставить флаг UseQuoting в false, никакого дублирования не происходит. Так же как и обычные (не защитные) MQS стратегии отрабатывают нормально. Откуда берется второй ордер?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					vfreeman 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/2/2012
					
					
			
					 
					 
					
	
			ak Столкнулся с такой же проблемой дважды причем подряд (QuikTrader, 4.0.17). Code
var takeProfit = new TakeProfitStrategy(trade, this.TakeProfitUnit) { UseQuoting = true };
var stopLoss = new StopLossStrategy(trade, StopLossUnit) { UseQuoting = true };
ChildStrategies.Add(new TakeProfitStopLossStrategy(takeProfit, stopLoss));
 Один раз для TP стратегии, второй раз для SL - симптомы те же, исполняются 2 одинаковые по цене заявки с минимальной разницей во времени. Лог одного из случаев (SL): Кто может помочь советом, как починить?  мне помогло Security.Exchange.IsSupportAtomicReRegister = false
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					ak 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/2/2012
					
					
			
					 
					 
					
	
			Благодарю за совет, обязательно попробую! Но вероятно у меня все же другая ошибка, потому что обычные MQS, созданные мной, вроде этой: Code
MarketQuotingStrategy marketQuotingStrategy = new MarketQuotingStrategy(order, new Unit(), new Unit());
base.ChildStrategies.Add(marketQuotingStrategy);
 
 работают нормально, происходит переставление ордера (без ошибок, которые появлялись у вас) и исполнение приказа без дублирования ордеров. А вот внутри защитных стратегий - дублируются. Важное дополнение: при использовании RealTimeEmulationTrader<QuikTrader> вместо QuikTrader ошибка не реплицируется. На QuikTrader повторяется в 100% случаев у меня.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					ak 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/8/2012
					
					
			
					 
					 
					
	
			Проблема сохраняется, флаг Security.Exchange.IsSupportAtomicReRegister = false не помог.
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					ET 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/8/2012
					
					
			
					 
					 
					
	
			_
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Moadip 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/24/2012
					
					
			
					 
					 
					
	
			MQS конкурирует со своими заявками. Хотя в  этом посте написано что нет. IsSupportAtomicReRegister = false IsAsyncMode = false Это хорошо видно вечером или на неликвиде, когда стакан не двигается. Допустим мне надо скотировать один лот на продажу. Создается MQS, PriceOffset = Security.MinStepSize Например лучший бид 90, оффер 100, стакан не двигается. Так MQS будет постоянно снимать и переставлять заявку на 99,98,97. Т.е не держит ее на 99. Бывает что стратегия отрабатывает нормально, но в основном завершается с ошибкой  Плюс вопрос в конце  данного поста тоже никак не решился. Думал что что нибудь изменится в последней сборке 4.0.20 но ничего не изменилось.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					ET 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 2/24/2012
					
					
			
					 
					 
					
	
			_
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 |