Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 30.11.2010
					
					
			
					 
					 
					
	
			1. Посмотрите, изменяется ли текущая свечка через CandleManager.CandlesChanged. Кстати, ctv= ActionStrategyConditionHelper.CurrentCandleTotalVolumeMore(token, 1); -> или короче, ctv= token.CurrentCandleTotalVolumeMore(1); Почитайте про extension methods в C# 2. а. using Ecng.Collections; (те же extension methods). Да, trades. Опечатка. _takeProfit - это делегаты. Тело обычное - new TakeProfitStrategy(trades, new Unit()); 2. б. Хм, логично. Надо проверять.
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					ustas 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 30.11.2010
					
					
			
					 
					 
					
	
			Mikhail Sukhov1. Посмотрите, изменяется ли текущая свечка через CandleManager.CandlesChanged.   да свечка меняется , я её вывожу там же в DrawCandles.  (как я уже написал  "при этом данные по свечкам ок") Mikhail Sukhov Кстати, ctv= ActionStrategyConditionHelper.CurrentCandleTotalVolumeMore(token, 1); -> или короче, ctv= token.CurrentCandleTotalVolumeMore(1); Почитайте про extension methods в C#
 
  Спасибо. Mikhail Sukhov 2. а. using Ecng.Collections; (те же extension methods). Да, trades. Опечатка. _takeProfit - это делегаты. Тело обычное - new TakeProfitStrategy(trades, new Unit());
 
  Понятно, спасибо.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 30.11.2010
					
					
			
					 
					 
					
	
			ustasMikhail Sukhov1. Посмотрите, изменяется ли текущая свечка через CandleManager.CandlesChanged.   да свечка меняется , я её вывожу там же в DrawCandles.  (как я уже написал  "при этом данные по свечкам ок")  Посмотрите в обработчике, что выдает token.Manager.GetCurrentTimeFrameCandle(token.Security, timeFrame); и чему у такой свечки равен TotalVolume.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					ustas 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 30.11.2010
					
					
			
					 
					 
					
	
			Mikhail Sukhov Посмотрите в обработчике, что выдает token.Manager.GetCurrentTimeFrameCandle(token.Security, timeFrame); и чему у такой свечки равен TotalVolume.
  а вот token.Manager.GetCurrentTimeFrameCandle(token.Security, timeFrame); выдаёт  всё врема  null почему то :( хотя свечки рисуются, правда рисую я их по  candles  В 2.5.2 работало 100 пудов, я ничего не менял :)  Вы вот  тут что то правили, не могли задеть? Спасибо и с уважением!
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 30.11.2010
					
					
			
					 
					 
					
	
			ustasMikhail Sukhov Посмотрите в обработчике, что выдает token.Manager.GetCurrentTimeFrameCandle(token.Security, timeFrame); и чему у такой свечки равен TotalVolume.
  а вот token.Manager.GetCurrentTimeFrameCandle(token.Security, timeFrame); выдаёт  всё врема  null почему то :( хотя свечки рисуются, правда рисую я их по  candles  В 2.5.2 работало 100 пудов, я ничего не менял :)  Вы вот  тут что то правили, не могли задеть? Спасибо и с уважением!  ITrader.MarketTime все корректно возвращает? Если копнуть еще поглубже, CandleManager.GetTimeFrameCandle для необходимо времени так же null возвращает?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					ustas 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 01.12.2010
					
					
			
					 
					 
					
	
			Mikhail Sukhov
  ITrader.MarketTime все корректно возвращает? Если копнуть еще поглубже, CandleManager.GetTimeFrameCandle для необходимо времени так же null возвращает?
  Извиняюсь за паузу. Отъезжал.  Да ITrader.MarketTime - верный , а вот   CandleManager.GetTimeFrameCandle всё время даёт null :( 
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 01.12.2010
					
					
			
					 
					 
					
	
			ustasMikhail Sukhov
  ITrader.MarketTime все корректно возвращает? Если копнуть еще поглубже, CandleManager.GetTimeFrameCandle для необходимо времени так же null возвращает?
  Извиняюсь за паузу. Отъезжал.  Да ITrader.MarketTime - верный , а вот   CandleManager.GetTimeFrameCandle всё время даёт null :(   А свечки то вообще формируются? NewCandles CandlesChanged?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					ustas 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 01.12.2010
					
					
			
					 
					 
					
	
			Mikhail Sukhov
  А свечки то вообще формируются? NewCandles CandlesChanged?
  ну да, как я говорил,  я же их рисую в DrawCandles по  candles из событий NewCandles  и CandlesChanged
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 02.12.2010
					
					
			
					 
					 
					
	
			ustasMikhail Sukhov
  А свечки то вообще формируются? NewCandles CandlesChanged?
  ну да, как я говорил,  я же их рисую в DrawCandles по  candles из событий NewCandles  и CandlesChanged  У меня по тестам свечка выдается. Попробуйте все таки точно определить, то ли время передается в CandleManager  и есть ли на тот момент свечка (получив их через GetTimeFrameCandles и сравнив, имеет ли необходимая среди нет).
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					ustas 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 02.12.2010
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Mikhail Sukhov У меня по тестам свечка выдается. Попробуйте все таки точно определить, то ли время передается в CandleManager  и есть ли на тот момент свечка (получив их через GetTimeFrameCandles и сравнив, имеет ли необходимая среди нет).
  А у меня нет :(  Ну вот полностью код примера c выводом  Кодnamespace testHelper {     using System;     using System.Linq;     using System.Threading;     using System.Collections.Generic;     using System.ComponentModel;
      using Ecng.Trading.Algo;     using Ecng.Trading.Algo.Candles;     using Ecng.Trading.Algo.Strategies;     using Ecng.Trading.Algo.Logging;     using Ecng.Trading.BusinessEntities;     using Ecng.Trading.Quik;     using Ecng.Interop;     using Ecng.Data;     using Ecng.Common;     using Ecng.ComponentModel;
 
 
      public class Program     {         private static Portfolio _port;         private static Security _sec;         private static QuikTrader _trader;         private static Func<bool> ctv;         private static CandleManager _candleManager;         private static readonly TimeSpan _timeFrame = TimeSpan.FromMinutes(1.0 / 6.0);
            static void Main()         {
              using (var waitHandle = new ManualResetEvent(false))             {
                  _trader = new QuikTrader();                 _trader.Connect();
                  _trader.NewPortfolios += portfolios =>                 {                     if (_port == null)                     {                         _port = portfolios.FirstOrDefault();
                          if (_port != null)                         {                             Console.WriteLine("Портфель {0} появился.", _port.Name);                             waitHandle.Set();                         }                     }                 };
                          _trader.NewSecurities += securities =>                 {                     if (_sec == null)                     {                         _sec = securities.FirstOrDefault(sec => sec.Code == "SRZ0");                         if (_sec != null)                         {                             Console.WriteLine(_sec.Code + " появился");                             waitHandle.Set();
                          }                     }                 };
                  
                  waitHandle.WaitOne();
                  _trader.IsAsyncMode = true;                 _trader.Terminal.StartDde(new[] { _trader.SecuritiesTable, _trader.TradesTable });
 
                  _trader.Connected += () =>                 {
                      Console.WriteLine("Connected");                     waitHandle.Set();
 
                  };
                  if (_sec != null)                 {                     _candleManager = new CandleManager(_trader);                     _candleManager.RegisterTimeFrameCandles(_sec, _timeFrame);
 
                      _candleManager.NewCandles += (token, candles) =>                     {
                          var _nextTime = _timeFrame.GetCandleBounds(_trader).Max;                         var candle = _candleManager.GetTimeFrameCandle(_sec, _timeFrame, _nextTime - _timeFrame);                         ctv = ActionStrategyConditionHelper.CurrentCandleTotalVolumeMore(token, 1);
                          if (candle != null)                         {                             ctv = ActionStrategyConditionHelper.CurrentCandleTotalVolumeMore(token,1);                             Console.ForegroundColor = ConsoleColor.Red;                             Console.WriteLine("new candle time:{0} TotalVolume:{1} ctv:{2}",candle.Time, candle.TotalVolume, ctv());                             Console.ForegroundColor = ConsoleColor.Gray;                         }                                            DrawCandles(candles);                     };
 
                      _candleManager.CandlesChanged += (token, candles) =>                     {                         //   _strat.Dispose();                         ctv = ActionStrategyConditionHelper.CurrentCandleTotalVolumeMore(token, 1);                                                 DrawCandles(candles);                     };                 }      
                  waitHandle.WaitOne();
             
                  Console.WriteLine("Чтобы закончить, нажмите любую кнопку...");                 Console.Read();
              }
          }
          private static void DrawCandles(IEnumerable<Candle> candles)         {             foreach (var candle in candles)             {                 if (_trader != null && candle.Time >= _timeFrame.GetCandleBounds(_trader).Min)                 {                     string str = _trader.MarketTime + "? " + ctv() + " " + candle.Security.Code + " " + candle.Time.TimeOfDay + " "                         + _trader.MarketTime.TimeOfDay + " " + candle.ClosePrice + " " + candle.TotalVolume                         ;                     Console.WriteLine(str);                 }             }         }
 
 
      } }
   вывод  Цитата:Портфель ..... появился. SRZ0 появился Чтобы закончить, нажмите любую кнопку... new candle time:02.12.2010 17:31:00 TotalVolume:238 ctv:False 02.12.2010 17:31:08? False SRZ0 17:31:00 17:31:08.0237782 10273 238 02.12.2010 17:31:08? False SRZ0 17:31:00 17:31:08.3317958 10275 261 02.12.2010 17:31:08? False SRZ0 17:31:00 17:31:08.6288128 10275 311 new candle time:02.12.2010 17:31:10 TotalVolume:86 ctv:False 02.12.2010 17:31:10? False SRZ0 17:31:10 17:31:10.8129377 10275 86 02.12.2010 17:31:12? False SRZ0 17:31:10 17:31:12.3740270 10275 146 02.12.2010 17:31:12? False SRZ0 17:31:10 17:31:12.6860449 10279 222 02.12.2010 17:31:13? False SRZ0 17:31:10 17:31:13.3090805 10274 292 02.12.2010 17:31:13? False SRZ0 17:31:10 17:31:13.6220984 10275 293 02.12.2010 17:31:15? False SRZ0 17:31:10 17:31:15.1811876 10275 301 02.12.2010 17:31:15? False SRZ0 17:31:10 17:31:15.4932054 10273 313 02.12.2010 17:31:16? False SRZ0 17:31:10 17:31:16.1172411 10275 314 02.12.2010 17:31:16? False SRZ0 17:31:10 17:31:16.7412768 10276 317 02.12.2010 17:31:19? False SRZ0 17:31:10 17:31:19.2364195 10277 318 new candle time:02.12.2010 17:31:20 TotalVolume:13 ctv:False 02.12.2010 17:31:20? False SRZ0 17:31:20 17:31:20.1734731 10276 13 02.12.2010 17:31:21? False SRZ0 17:31:20 17:31:21.1115268 10276 16 02.12.2010 17:31:21? False SRZ0 17:31:20 17:31:21.7375626 10275 20 02.12.2010 17:31:22? False SRZ0 17:31:20 17:31:22.6776164 10276 32 02.12.2010 17:31:23? False SRZ0 17:31:20 17:31:23.6056694 10276 44 02.12.2010 17:31:24? False SRZ0 17:31:20 17:31:24.5407229 10276 49 02.12.2010 17:31:25? False SRZ0 17:31:20 17:31:25.7947947 10276 52 new candle time:02.12.2010 17:31:30 TotalVolume:113 ctv:False 02.12.2010 17:31:30? False SRZ0 17:31:30 17:31:30.1570442 10278 113 02.12.2010 17:31:30? False SRZ0 17:31:30 17:31:30.4770625 10276 122 02.12.2010 17:31:30? False SRZ0 17:31:30 17:31:30.7930805 10276 126 02.12.2010 17:31:31? False SRZ0 17:31:30 17:31:31.4191163 10276 128 02.12.2010 17:31:31? False SRZ0 17:31:30 17:31:31.7171334 10277 131 02.12.2010 17:31:32? False SRZ0 17:31:30 17:31:32.3411691 10279 139 02.12.2010 17:31:32? False SRZ0 17:31:30 17:31:32.9672049 10278 140 02.12.2010 17:31:33? False SRZ0 17:31:30 17:31:33.2772226 10277 143 02.12.2010 17:31:33? False SRZ0 17:31:30 17:31:33.5892405 10277 146 02.12.2010 17:31:34? False SRZ0 17:31:30 17:31:34.2122761 10280 363 02.12.2010 17:31:34? False SRZ0 17:31:30 17:31:34.5252940 10282 749 02.12.2010 17:31:34? False SRZ0 17:31:30 17:31:34.8363118 10284 755 02.12.2010 17:31:35? False SRZ0 17:31:30 17:31:35.1483296 10281 758 02.12.2010 17:31:35? False SRZ0 17:31:30 17:31:35.4783485 10280 777 02.12.2010 17:31:36? False SRZ0 17:31:30 17:31:36.7114191 10279 784 02.12.2010 17:31:37? False SRZ0 17:31:30 17:31:37.0234369 10279 792 02.12.2010 17:31:38? False SRZ0 17:31:30 17:31:38.5825261 10278 952 new candle time:02.12.2010 17:31:40 TotalVolume:135 ctv:False 02.12.2010 17:31:40? False SRZ0 17:31:40 17:31:40.1446154 10281 135 02.12.2010 17:31:40? False SRZ0 17:31:40 17:31:40.4646337 10281 339 02.12.2010 17:31:42? False SRZ0 17:31:40 17:31:42.0157224 10282 343 02.12.2010 17:31:42? False SRZ0 17:31:40 17:31:42.9687770 10283 344 02.12.2010 17:31:45? False SRZ0 17:31:40 17:31:45.4449186 10281 346 02.12.2010 17:31:46? False SRZ0 17:31:40 17:31:46.0709544 10280 372 02.12.2010 17:31:48? False SRZ0 17:31:40 17:31:48.5650970 10279 382
   Видим что Helper всё время  false Что же я всё таки делаю не так? В 2.5.2 это работало  Спасибо и с уважением! (Update) только что собрал этот же пример не поменяв ни строчки на 2.5.2 вот вывод Цитата:Портфель ...... появился. SRZ0 появился Чтобы закончить, нажмите любую кнопку... new candle time:02.12.2010 17:46:10 TotalVolume:4 ctv:True 02.12.2010 17:46:12? True SRZ0 17:46:10 17:46:12.0266640 10315 4 02.12.2010 17:46:14? True SRZ0 17:46:10 17:46:14.1737868 10316 16 new candle time:02.12.2010 17:46:20 TotalVolume:251 ctv:True 02.12.2010 17:46:21? True SRZ0 17:46:20 17:46:21.9742329 10316 251 02.12.2010 17:46:23? True SRZ0 17:46:20 17:46:23.5333221 10320 281 new candle time:02.12.2010 17:46:30 TotalVolume:32 ctv:True 02.12.2010 17:46:30? True SRZ0 17:46:30 17:46:30.3977147 10316 32 02.12.2010 17:46:31? True SRZ0 17:46:30 17:46:31.6497863 10317 39 02.12.2010 17:46:35? True SRZ0 17:46:30 17:46:35.0769824 10316 40 02.12.2010 17:46:38? True SRZ0 17:46:30 17:46:38.1981609 10315 55 02.12.2010 17:46:39? True SRZ0 17:46:30 17:46:39.1352145 10313 193 new candle time:02.12.2010 17:46:30 TotalVolume:193 ctv:True 02.12.2010 17:46:39? True SRZ0 17:46:40 17:46:39.7612503 10312 1 02.12.2010 17:46:40? True SRZ0 17:46:40 17:46:40.3812858 10314 21    
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 |