Евгений 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 03.06.2011
					
					
			
					 
					 
					
	
			Хелп ми плиз
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 03.06.2011
					
					
			
					 
					 
					
	
			Есть стратегия на S#, которая работает только при наличие стакана. Стакан отсутствует. Но торговать все равно хотите. Вывод, или вам нужна другая стратегия, или доводите до ума эта. OnProcess правильно переопределили. Видимо нужно что-то еще.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					InsiderHSE 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 03.06.2011
					
					
			
					 
					 
					
	
			Думаю можно попробовать отнаследоваться от защитной стратегии и точно так же переопределить OnProcess
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Евгений 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 06.06.2011
					
					
			
					 
					 
					
	
			InsiderHSE Думаю можно попробовать отнаследоваться от защитной стратегии и точно так же переопределить OnProcess  Спасибо, я так и сделал, тестирую
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Евгений 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 14.07.2011
					
					
			
					 
					 
					
	
			А как задать время работы защитных стратегий в версии 3.2.5? До этого я переопределял OnProcess и там указывал. 
  
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Alexander 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 15.07.2011
					
					
			
					 
					 
					
	
			Евгений А как задать время работы защитных стратегий в версии 3.2.5? До этого я переопределял OnProcess и там указывал. 
 
   Через When \ Do в When - указывайте время когда не хотите чтобы ваша стратегия работала + у Trader есть событие MarketTimeChanged
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Евгений 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 19.07.2011
					
					
			
					 
					 
					
	
			Alexander Евгений А как задать время работы защитных стратегий в версии 3.2.5? До этого я переопределял OnProcess и там указывал. 
 
   Через When \ Do в When - указывайте время когда не хотите чтобы ваша стратегия работала + у Trader есть событие MarketTimeChanged  А как через MarketTimeChanged можно? Мой вариант не работает, потому что коллекция ChildStrategies изменяется во время проверки Код
 _trader.MarketTimeChanged += () => this.GuiAsync(() =>
                        {
                            if (_strategy != null)
                            {
                                if (_strategy.ChildStrategies.Count != 0)
                                    if (_security.Exchange.IsTradeTime(_trader.MarketTime) == false)
                                    {
                                        foreach (var s in this._strategy.ChildStrategies.Where(s => s.ProcessState == StrategyProcessStates.Runned))
                                            s.Stop();
                                    }
                                    else
                                        foreach (var s in this._strategy.ChildStrategies.Where(s => s.ProcessState == StrategyProcessStates.Stopped))
                                            s.Start();
                            }
                        });
 
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Alexander 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 20.07.2011
					
					
			
					 
					 
					
	
			Евгений Alexander Евгений А как задать время работы защитных стратегий в версии 3.2.5? До этого я переопределял OnProcess и там указывал. 
 
   Через When \ Do в When - указывайте время когда не хотите чтобы ваша стратегия работала + у Trader есть событие MarketTimeChanged  А как через MarketTimeChanged можно? Мой вариант не работает, потому что коллекция ChildStrategies изменяется во время проверки Код
 _trader.MarketTimeChanged += () => this.GuiAsync(() =>
                        {
                            if (_strategy != null)
                            {
                                if (_strategy.ChildStrategies.Count != 0)
                                    if (_security.Exchange.IsTradeTime(_trader.MarketTime) == false)
                                    {
                                        foreach (var s in this._strategy.ChildStrategies.Where(s => s.ProcessState == StrategyProcessStates.Runned))
                                            s.Stop();
                                    }
                                    else
                                        foreach (var s in this._strategy.ChildStrategies.Where(s => s.ProcessState == StrategyProcessStates.Stopped))
                                            s.Start();
                            }
                        });
  копируйте прежде чем использовать, либо сделайте лок
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Евгений 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 17.08.2011
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Возникает ошибка при логировании                  Код
   for (int i = 0; i < base.ChildStrategies.Count; i++)
                    {
                        [h]AddLog(StrategyErrorStates.None, "Удаление стратегии {0}", base.ChildStrategies[i].Name);[/h]
                        base.ChildStrategies.RemoveAt(i);
                    }
 Цитата:System.NotSupportedException не обработано пользовательским кодом   Message=Указанный метод не поддерживается.   Source=Ecng.Collections   StackTrace:        в Ecng.Collections.SynchronizedSet`1.System.Collections.Generic.IList<T>.get_Item(Int32 index)        в Ecng.Collections.BaseCollection`1.get_Item(Int32 index)        в SampleSma.SmaStrategy.OnNewMyTrades(IEnumerable`1 trades) в D:\StockSharp_3.2.7_Sources\SmaStrategy.cs:строка 217        в System.Action`1.Invoke(T obj)        в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)        в StockSharp.Algo.Strategies.Strategy.#=qXQcTzmM0UE1f5yIY2j5kaA==(IEnumerable`1 #=qM5HbaFnvCFi7rkUr5cbHdQ==)        в StockSharp.Algo.Strategies.Strategy.#=qM0$gqkXG3MPOkX0bnBfw2A==(IEnumerable`1 #=qL4wEoMHRTP$ON_GriBYYEA==)        в System.Action`1.Invoke(T obj)        в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)        в StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qPIAOBkVt1MhD9DGmazWqFXVeVjc6WER7AoUQ0gK7Sec=(IEnumerable`1 #=qWC4Z1rz_RGQAUzeSh1Cphw==)        в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)        в StockSharp.Algo.Testing.MarketEmulator.RaiseNewMyTrades(IEnumerable`1 trades)        в StockSharp.Algo.Testing.MarketEmulator.#=q2J23UVF1zXonLRlbjK309w==(Order #=q0wnjY82As$lGM3$R70XXZA==, Int32 #=qri0DP6B4pNy7fx3oHmxVqA==, Decimal #=quoai2hjCHpHfZ1q8j3z$ew==)        в StockSharp.Algo.Testing.MarketEmulator.#=qE7E7qt9g1c47ZkBqOFQjyQFedGLvvuLEiZjEuWXdWe8=(MarketDepth #=qtMm0MpCgzrjyUmIY37DQGQ==, Order #=qN7KRs9k9LSYRBZ6MhxRoHA==, Quote #=qN7Znv2zz9zpDeRNGHg_Wow==, Boolean #=qreLQ9GB8WhUEds76X0M828yCTL2n9cda$8T1MfjlO18=)        в StockSharp.Algo.Testing.MarketEmulator.#=qUkyP0_M9OMEy$SkKYfYJOtahWlDktGcqM5WL10p_80s=(Order #=qghTCyYil3z9plTAIH0h7ZQ==, MarketDepth #=qLR63QCgY7j2YwdM8UiJ_RA==)        в StockSharp.Algo.Testing.MarketEmulator.#=qtVjIJmyUftYFmfFY5O4f0g==(SynchronizedDictionary`2 #=q9J8oLVIQhe2_0P3XQ18a7Q==)        в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action`1 action)        в StockSharp.Algo.Testing.MarketEmulator.#=qcAGUpJziDHjwYUgUkdFL0g==()        в StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(IEnumerable`1 marketDepths)        в StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=q0xtw_MzKkmFKPWfyFMG2VeXM$PE6NDpWY9PTT7IQgHE=(IEnumerable`1 #=qa1P$uiol4QhZBoQzjZJhMw==)        в System.Action`1.Invoke(T obj)        в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)        в StockSharp.Algo.BaseTrader.#=qifrQr7se$_OPI_WBxefq0RZ$hXHpoMKbn3PHl9eAJYM=.#=qq46wFSKy$Z5naYx_yW1qIw==(IEnumerable`1 #=q_TiYF80HDzj2r9IIRRL14g==)   InnerException:   
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Alexander 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 17.08.2011
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Евгений Возникает ошибка при логировании                  Код
   for (int i = 0; i < base.ChildStrategies.Count; i++)
                    {
                        [h]AddLog(StrategyErrorStates.None, "Удаление стратегии {0}", base.ChildStrategies[i].Name);[/h]
                        base.ChildStrategies.RemoveAt(i);
                    }
 Цитата:System.NotSupportedException не обработано пользовательским кодом   Message=Указанный метод не поддерживается.   Source=Ecng.Collections   StackTrace:        в Ecng.Collections.SynchronizedSet`1.System.Collections.Generic.IList<T>.get_Item(Int32 index)        в Ecng.Collections.BaseCollection`1.get_Item(Int32 index)        в SampleSma.SmaStrategy.OnNewMyTrades(IEnumerable`1 trades) в D:\StockSharp_3.2.7_Sources\SmaStrategy.cs:строка 217        в System.Action`1.Invoke(T obj)        в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)        в StockSharp.Algo.Strategies.Strategy.#=qXQcTzmM0UE1f5yIY2j5kaA==(IEnumerable`1 #=qM5HbaFnvCFi7rkUr5cbHdQ==)        в StockSharp.Algo.Strategies.Strategy.#=qM0$gqkXG3MPOkX0bnBfw2A==(IEnumerable`1 #=qL4wEoMHRTP$ON_GriBYYEA==)        в System.Action`1.Invoke(T obj)        в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)        в StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qPIAOBkVt1MhD9DGmazWqFXVeVjc6WER7AoUQ0gK7Sec=(IEnumerable`1 #=qWC4Z1rz_RGQAUzeSh1Cphw==)        в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)        в StockSharp.Algo.Testing.MarketEmulator.RaiseNewMyTrades(IEnumerable`1 trades)        в StockSharp.Algo.Testing.MarketEmulator.#=q2J23UVF1zXonLRlbjK309w==(Order #=q0wnjY82As$lGM3$R70XXZA==, Int32 #=qri0DP6B4pNy7fx3oHmxVqA==, Decimal #=quoai2hjCHpHfZ1q8j3z$ew==)        в StockSharp.Algo.Testing.MarketEmulator.#=qE7E7qt9g1c47ZkBqOFQjyQFedGLvvuLEiZjEuWXdWe8=(MarketDepth #=qtMm0MpCgzrjyUmIY37DQGQ==, Order #=qN7KRs9k9LSYRBZ6MhxRoHA==, Quote #=qN7Znv2zz9zpDeRNGHg_Wow==, Boolean #=qreLQ9GB8WhUEds76X0M828yCTL2n9cda$8T1MfjlO18=)        в StockSharp.Algo.Testing.MarketEmulator.#=qUkyP0_M9OMEy$SkKYfYJOtahWlDktGcqM5WL10p_80s=(Order #=qghTCyYil3z9plTAIH0h7ZQ==, MarketDepth #=qLR63QCgY7j2YwdM8UiJ_RA==)        в StockSharp.Algo.Testing.MarketEmulator.#=qtVjIJmyUftYFmfFY5O4f0g==(SynchronizedDictionary`2 #=q9J8oLVIQhe2_0P3XQ18a7Q==)        в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action`1 action)        в StockSharp.Algo.Testing.MarketEmulator.#=qcAGUpJziDHjwYUgUkdFL0g==()        в StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(IEnumerable`1 marketDepths)        в StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=q0xtw_MzKkmFKPWfyFMG2VeXM$PE6NDpWY9PTT7IQgHE=(IEnumerable`1 #=qa1P$uiol4QhZBoQzjZJhMw==)        в System.Action`1.Invoke(T obj)        в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)        в StockSharp.Algo.BaseTrader.#=qifrQr7se$_OPI_WBxefq0RZ$hXHpoMKbn3PHl9eAJYM=.#=qq46wFSKy$Z5naYx_yW1qIw==(IEnumerable`1 #=q_TiYF80HDzj2r9IIRRL14g==)   InnerException:    А судя по стэктрэйсу - ошибка вовсе не при логировании: Цитата:в Ecng.Collections.SynchronizedSet`1.System.Collections.Generic.IList<T>.get_Item(Int32 index) в Ecng.Collections.BaseCollection`1.get_Item(Int32 index) в SampleSma.SmaStrategy.OnNewMyTrades(IEnumerable`1 trades) в D:\StockSharp_3.2.7_Sources\SmaStrategy.cs:строка 217  судя по всему - это что-то ваше, внутреннее. в исходниках в SmaStrategy.cs заметно меньше строчек :)
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 |