EmulationTrader - как пройтись по всем сделкам?
Здравствуйте.
Ситуация такая.
1. Скачал Гидрой тиковые сделки по фьючу RTS
2. Взял за основу SampleHistoryTesting
3. Заменил стратегию на собственную
4. Не работает :)
Если запустить SampleHistoryTesting - то все тестируется, данные по сделкам читаются, свечки приходят. То есть для SmaStrategy вызывается событие ProcessCandle, которое задано как
Code
protected override void OnStarting()
{
_series
.WhenCandlesFinished()
.Do(ProcessCandle)
.Apply(this);
// запоминаем текущее положение относительно друг друга
_isShortLessThenLong = ShortSma.LastValue < LongSma.LastValue;
base.OnStarting();
}
Моя же стратегия основана не на свечках, мне нужно обработать каждую сделку. Делаю так:
Code
protected override void OnStarting()
{
base.Security.Exchange.IsSupportAtomicReRegister = false;
this.SuspendRules(() =>
{
base.Security.WhenNewTrades().Do(NewTrade).Apply(this);
});
base.OnStarting();
}
И метод NewTrade никогда не вызывается. Дополнительно пробовал:
1. Менял MarketTimeChangedInterval = TimeSpan.FromMilliseconds(1) при создании эмулятора:
Code
m_Trader = new EmulationTrader(new[] { Sec }, new[] { Por }, Str)
{
MarketTimeChangedInterval = TimeSpan.FromMilliseconds(1),
WorkingTime = Exchange.Rts.WorkingTime,
UseMarketDepth = false,
};
2. Пробовал правило base.Security.WhenChanged().Do(NewTrade).Apply(this);
Вопрос - как заставить эмулятор прогнать через стратегию все исторические сделки, а не свечки? Спасибо.