Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 08.09.2011
					
					
			
					 
					 
					
	
			XMbIPb Чтобы получить лучшие офферы на начало каждой секунды из истории шести стаканов - нужно создать шесть тестовых инструментов, создать для каждого EmulationTrader и с интервалом в секунду запрашивать GetMarketDepth(Security).BestAsk для каждого стакана.. или есть способ лучше(быстрее)?
   По быстрее в каком плане? Судя по предложенному способу 5 EmulationTrader лишних.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					XMbIPb 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 09.09.2011
					
					
			
					 
					 
					
	
			Mikhail Sukhov  По быстрее в каком плане?
  Чтоб не ждать секунду между запросами.. как ещё можно получить состояние всех шести стаканов на определённый момент времени(например на 10:00:01,02 и т.д.)? Mikhail Sukhov  5 EmulationTrader лишних.
  Т.е. достаточно создать эмулятор только для одного инструмента или ему можно как-то передать сразу несколько бумаг?  
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 09.09.2011
					
					
			
					 
					 
					
	
			XMbIPb Т.е. достаточно создать эмулятор только для одного инструмента или ему можно как-то передать сразу несколько бумаг?    Эмулятор не создается для бумаги. Эмулятор создается сам по себе. Бумаги заполняются в него.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Justforg 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 13.09.2011
					
					
			
					 
					 
					
	
			Пытаюсь сделать примерно то же самое; но несмотря на добавление нескольких RandomWalkTradeGenerator (по одному на каждую бумагу) генерируются стаканы только для первой добавленной (хотя события добавления бумаг от trader'а генерируются для всех).  Это баг или я что-то делаю не так? 
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 14.09.2011
					
					
			
					 
					 
					
	
			Justforg Пытаюсь сделать примерно то же самое; но несмотря на добавление нескольких RandomWalkTradeGenerator (по одному на каждую бумагу) генерируются стаканы только для первой добавленной (хотя события добавления бумаг от trader'а генерируются для всех).  Это баг или я что-то делаю не так?
   Можете привести мини код инициализации и старта тестера?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Justforg 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 14.09.2011
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Mikhail Sukhov Можете привести мини код инициализации и старта тестера?  Используемый код (на IronPython): Код
gen_securities = [
  Security(Id="TST1", Code="TST1", Name="whatevername", MinStepSize=5,
    MinStepPrice=2, Decimals=0, Exchange=Exchange.Test),
  Security(Id="TST2", Code="TST2", Name="whatevername2", MinStepSize=5,
    MinStepPrice=2, Decimals=0, Exchange=Exchange.Test),
  ]
logManager = StrategyLogManager()
logManager.Listeners.Add(FileLogListener("log.txt"))
portfolio = Portfolio(Name="twst account", BeginAmount=Currency(Value=1000000))
trader = EmulationTrader(List[Security](gen_securities),
  List[Portfolio]([portfolio]),
  MarketTimeChangedInterval=TimeSpan.FromMinutes(50))
for security in gen_securities:
    security.LastTrade.Price = 155000
    trader.TradeGenerators[security] = RandomWalkTradeGenerator(security)
    trader.DepthGenerators[security] = TrendMarketDepthGenerator(security)
def new_securities(securities):
    for security in securities:
        print "security", security
        trader.RegisterQuotes(security)
def quotes_changed(depths):
    for depth in depths:
        print "Quotes: [{2}] {0} / {1}".format(depth.BestAsk.ToString(), depth.BestBid.ToString(), depth.Security)
def connect_done():
    print "connected"
    trader.NewSecurities += new_securities
    trader.QuotesChanged += quotes_changed
    trader.StartExport()
    trader.Start(DateTime(2009, 6, 1), DateTime(2009, 6, 2))
trader.Connected += connect_done
trader.Connect()
sys.stdin.readline()
 
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 15.09.2011
					
					
			
					 
					 
					
	
			Багу нашли, в 3.2.11 поправим. Нужно было сразу сказать, что это эмуляция и бага специфична только для эмуляции. У топик стартера проблема с историей, которая не подтвердилась.
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Justforg 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 20.09.2011
					
					
			
					 
					 
					
	
			Mikhail Sukhov Багу нашли, в 3.2.11 поправим. Нужно было сразу сказать, что это эмуляция и бага специфична только для эмуляции. У топик стартера проблема с историей, которая не подтвердилась.  Я так понимаю речь про 3.2.12? В любом случае, в ревизии 9575 (с codeplex) бага и правда исправлена; только вот сходу тестирование не работает (в том числе SampleEmulationTesting) — security.LastTrade в равняется null и поэтому 'security.LastTrade.Price = …' падает с Exception (конечно же, если вставить туда новый Trade() то работает). И мета-вопрос по этому: такую информацию по проблемам в нерелизных версиях куда по-хорошему постить?
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Alexander 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 20.09.2011
					
					
			
					 
					 
					
	
			Justforg Mikhail Sukhov Багу нашли, в 3.2.11 поправим. Нужно было сразу сказать, что это эмуляция и бага специфична только для эмуляции. У топик стартера проблема с историей, которая не подтвердилась.  Я так понимаю речь про 3.2.12? В любом случае, в ревизии 9575 (с codeplex) бага и правда исправлена; только вот сходу тестирование не работает (в том числе SampleEmulationTesting) — security.LastTrade в равняется null и поэтому 'security.LastTrade.Price = …' падает с Exception (конечно же, если вставить туда новый Trade() то работает). И мета-вопрос по этому: такую информацию по проблемам в нерелизных версиях куда по-хорошему постить?  Спасибо за репорт. Было очень важное исправление, из-за него может падать. Пишите сюда, на форум. Единственное - в соответствующие темы. :)
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Alexander 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 21.09.2011
					
					
			
					 
					 
					
	
			Justforg Mikhail Sukhov Багу нашли, в 3.2.11 поправим. Нужно было сразу сказать, что это эмуляция и бага специфична только для эмуляции. У топик стартера проблема с историей, которая не подтвердилась.  Я так понимаю речь про 3.2.12? В любом случае, в ревизии 9575 (с codeplex) бага и правда исправлена; только вот сходу тестирование не работает (в том числе SampleEmulationTesting) — security.LastTrade в равняется null и поэтому 'security.LastTrade.Price = …' падает с Exception (конечно же, если вставить туда новый Trade() то работает). И мета-вопрос по этому: такую информацию по проблемам в нерелизных версиях куда по-хорошему постить?  в какой момент времени security.LastTrade == null? Если в самом начале - то это верное поведение, так и должно быть. То как было раньше - неверно. Если посреди работы вылезает такое - то ошибка. Напишите подробнее, по коду не смог ошибку найти.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 |