Mikhail Sukhov:
roman:
да в стратегии
HistoryTestTrader используется
Видимо ликвидность у инструмента меньше секунды. Какую вы указали?
Код такой:
var storage = new TradingStorage(new InMemoryStorage()){BasePath = @"D:\Roma\Trade\Data"};
var trader = new HistoryTestTrader(
new Dictionary<Security, TimeSpan> { { security, TimeSpan.FromMilliseconds(1000) } },
new[] { portfolio },
storage);
_manager = new TimeShiftStrategyManager(trader, new DateTime(2010, 3, 19, 10, 20, 0), new DateTime(2010, 3, 19, 11, 50, 0)) { };
_manager.StateChanged += () => { if (_manager.State == StrategyManagerStates.Stopped) MessageBox.Show("Finish"); };
_manager.TimeStep = TimeSpan.FromMilliseconds(1000);
_strategy = new TestStrategy() { };
FileStrategyLogger flogger = new FileStrategyLogger(DateTime.Now.Ticks.ToString()+"log.txt");
flogger.Strategies.Add(_strategy);
_manager.Register(_strategy, portfolio, security);
_strategy.Start();
_manager.Start();
не только целый стакан рандомный генерируется, но и существующий добивается до константной глубины рандомными заявками, если сохраненный стакан меньше
и как я понимаю с сохраненными сделками с секундной точностью бессмысленно тестировать на истории со стаканами, сохраненными с миллисекундной точностью