Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 5/1/2011
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Maxim Все верно пишите. Только как раз не хотелось заниматься разбитием процесса на части (загрузки и выгрузки частями).  Так сделано сейчас в HistoryEmulationTrader. Вы еще что-то на части разбиваете? Maxim  Если касательно торгового робота (где я использую S#), то 5.6 гигов необходимо один раз, при первом старте стратегии, что бы просчитать все данные которые, были с начала истории по текущий момент.
 
  А вы пробовали в конце сессии писать результирующие данные, чтобы на следующий день не делать пересчет для 6 гигов тиков? Maxim  Если касательно бэктестинга, то там я S# не использую. Но там много памяти надо постоянно :)
 
  Давайте разбираться с конкретикой. На какой версии пробовали, сколько занимало, какой период выбирали, сколько тестировалось стратегий и инструментов. Maxim  Считаю, что если алгоритм с небольшим количеством параметров (у меня ~7) дает хорошие результаты на 10 годах истории, то с большой вероятностью он будет хорошим и в ближайшие пол года. То есть подгонка в некоторых случаях имеет право на жизнь. Вы не согласны?
  Если говорить о тех анализе, я его вообще считаю профанацией.[laugh] А если ближе к деталям, то у нас рынок меняется каждые 2 года и кризисы каждые 5 лет[smile] . С этими факторами российского стиля жизни сложно найти инструменту, который бы был стабилет на стратегии в течении 10 лет. Так что да, я не верю, что алго даст профит хотя бы на ближайшие пол года. Я думаю это плохое тестирование, которые в реальности не показало бы на прошедших 10 годах тот показатель, что был получен на истории. Вам то удалось самому найти такой алго?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Maxim 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 5/1/2011
					
					
			
					 
					 
					
	
			Mikhail Sukhov  Так сделано сейчас в HistoryEmulationTrader. Вы еще что-то на части разбиваете?
 
  Для бектестинга не использую S#.  Все свое :) Mikhail Sukhov  А вы пробовали в конце сессии писать результирующие данные, чтобы на следующий день не делать пересчет для 6 гигов тиков?
 
  Это надо сделать самый первый раз при запуске одной стратегии. Потом эти данные считаются и записываются онлайн. И стока памяти не надо. Maxim  Давайте разбираться с конкретикой. На какой версии пробовали, сколько занимало, какой период выбирали, сколько тестировалось стратегий и инструментов.
 
  Я не использую S# для бектестинга ) Maxim  Вам то удалось самому найти такой алго?
  Торговый робот работает с нового года. До этого времени шел поиск золотого грааля :) Но постоянно возникают косяки, которые мешают оценить результативность алго. (Стоит уточнить, что в среднем одна-две сделки в неделю)  Так что через месяц другой может смогу дать Вам ответ.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Maxim 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 5/1/2011
					
					
			
					 
					 
					
	
			Mikhail Sukhov  Если говорить о тех анализе, я его вообще считаю профанацией.[laugh]
  А это, мне кажется, надо сделать слоганом S# :)
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 5/1/2011
					
					
			
					 
					 
					
	
			Maxim Mikhail Sukhov  Так сделано сейчас в HistoryEmulationTrader. Вы еще что-то на части разбиваете?
 
  Для бектестинга не использую S#.  Все свое :)  Значит нужно сделать переход на S# и решить проблему с потреблением памяти.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 5/1/2011
					
					
			
					 
					 
					
	
			Maxim Mikhail Sukhov  Если говорить о тех анализе, я его вообще считаю профанацией.[laugh]
  А это, мне кажется, надо сделать слоганом S# :)  Это мое личное мнение. А так, на S# чего только не делалось (не мной). В том числе и тех анализ.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Maxim 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 5/2/2011
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Михаил, может сталкивались со следующим?  При выполнении участка кода: Code ring _query = "SELECT HistoryId, Money, Paper FROM {0} WHERE Date = (SELECT MAX(DATE) FROM {0} )"; _query = String.Format(_query, sqlTableName);  SqlCommand _sqlCommand = new SqlCommand(_query, _sqlConn);
  using (SqlDataReader _dataReader = _sqlCommand.ExecuteReader())                         while (_dataReader.Read())     {         HistoryId = _dataReader.GetInt64(0);         Money = _dataReader.GetDecimal(1);         Paper = _dataReader.GetInt32(2);     }
 
  Получается исключение: Code A first chance exception of type 'System.DivideByZeroException' occurred in mscorlib.dll System.Transactions Critical: 0 : <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Critical"><TraceIdentifier>http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled</TraceIdentifier><Description>Unhandled exception</Description><AppDomain>Mts.vshost.exe</AppDomain><Exception><ExceptionType>System.DivideByZeroException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>Attempted to divide by zero.</Message><StackTrace>   at System.Decimal.FCallDivide(Decimal&amp; d1, Decimal&amp; d2)    at System.Decimal.op_Division(Decimal d1, Decimal d2)    at Goricap.Mts.BuySell.&lt;initProfitTimer&gt;b__c(Object data) in G:\C\Development\MTS_Decimal\Programm\BuySellClass.cs:line 333    at System.Threading._TimerCallback.TimerCallback_Context(Object state)    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)    at System.Threading._TimerCallback.PerformTimerCallback(Object state)</StackTrace><ExceptionString>System.DivideByZeroException: Attempted to divide by zero.    at System.Decimal.FCallDivide(Decimal&amp; d1, Decimal&amp; d2)    at System.Decimal.op_Division(Decimal d1, Decimal d2)    at Goricap.Mts.BuySell.&lt;initProfitTimer&gt;b__c(Object data) in G:\C\Development\MTS_Decimal\Programm\BuySellClass.cs:line 333    at System.Threading._TimerCallback.TimerCallback_Context(Object state)    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)    at System.Threading._TimerCallback.PerformTimerCallback(Object state)</ExceptionString></Exception></TraceRecord>
 
  Исключения появляется при исполнении  using (SqlDataReader _dataReader = _sqlCommand.ExecuteReader())  Раньше было Double, все работало. Ошибка появилась после перехода на Decimal. Буду благодарен помощи. Гугление как то не дает результатов. И при чем тут деление? Не понимаю :)
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 5/2/2011
					
					
			
					 
					 
					
	
			Maxim И при чем тут деление? Не понимаю :)  Подозреваю, что кусов кода и текст ошибки не связаны между собой.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Maxim 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 5/2/2011
					
					
			
					 
					 
					
	
			Mikhail Sukhov Maxim И при чем тут деление? Не понимаю :)  Подозреваю, что кусов кода и текст ошибки не связаны между собой.  Я тоже это подозреваю. Потому что программа просто заканчивается. Никаких привычных исключений в дебагере не появляется. Исключение, которое я написал, появляется в Output окне.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Геннадий Ванин (Gennady Vanin) 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 11/7/2012
					
					
			
					 
					 
					
	
			Alexander Mukhanchikov А ведь ни цены, ни объём не могут быть отрицательными. Почему бы не использовать для цен тот же самый Decimal, а для объёмов ulong?  Зато их разница - может Текущая чистая позиция  - разница объёмов, может быть отрицательная "% изменения от закрытия" Вход. чист. поз. Разница цены последней к оценке предыдущей сессиии Разница цены последней к предыдущей сессиии и т.д.  Половина парметров, которыми я пользуюсь из КВИК, могут быть отрицательными
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Alexander 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Date: 11/7/2012
					
					
			
					 
					 
					
	
			Геннадий Ванин (Gennady Vanin) Alexander Mukhanchikov А ведь ни цены, ни объём не могут быть отрицательными. Почему бы не использовать для цен тот же самый Decimal, а для объёмов ulong?  Зато их разница - может Текущая чистая позиция  - разница объёмов, может быть отрицательная "% изменения от закрытия" Вход. чист. поз. Разница цены последней к оценке предыдущей сессиии Разница цены последней к предыдущей сессиии и т.д.  Половина парметров, которыми я пользуюсь из КВИК, могут быть отрицательными  И? Мы и используем decimal поэтому.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Thanks:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 |