← Назад

Когда вызывается OnNewTrades?

День добрый!

Помогите разобраться с данными.

При получении информации о количестве трейдов в исторической свечке как от OnNewHistoryCandles, так и от CandleManager данные полностью совпадают. Но если просто подсчитать количество вызовов события OnNewTrades за минуту, например, данные не совпадают.

Что не так делается? Можно ли количество вызовов события OnNewTrades за интервал времени интерпретировать как количество сделок за этот же период?

Спасибо заранее

Комментарии (9)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

esper
esper

Сделки могут пачками приходить.

andy_baka_
andy_baka_ Автор

И разделить возможности нет?

esper
esper
Trader.NewTrades += trades => 
{
   foreach(var trade in trades)
   {
   }
});
Sergey Masyura
andy_baka_
andy_baka_ Автор

Неправильно вопрос задал. Естественно, именно так и выдергивал каждую сделку. Только их количество не совпадает с данными возвращаемыми RegisterHistoryCandles или CandleManager. По-другому проанализировать состав сделок нет возможности?

ra81
ra81

andy_baka_: Неправильно вопрос задал. Естественно, именно так и выдергивал каждую сделку. Только их количество не совпадает с данными возвращаемыми RegisterHistoryCandles или CandleManager. По-другому проанализировать состав сделок нет возможности?

Других способов кажется нет. А какие расхождения количественно? десятки тыщи или 1 сделка?

esper
esper

А что именно не совпадает и как вы это проверяете?

andy_baka_
andy_baka_ Автор

Расхождения в количестве сделок - данные из свечей больше данных прямого подсчета от 1,5 до 2,5 раз - это прямо сейчас по рынку.

Проверяю просто.

Из CandleManager:

_candleManager.CandlesFinished += OnCandlesFinished;

private void OnCandlesFinished(CandleToken token, IEnumerable<Candle> candles) { trader.RegisterHistoryCandles(tmp_security, SmartTimeFrames.Minute1, DateTime.Now, 13, SmartHistoryDirections.Backward);

 foreach (var _candle in candles)
 {
     Logger.Debug("TotalVolume {0}".Put(_candle.TotalVolume));
 }

}

private void OnNewHistoryCandles(CandleToken token, IEnumerable<TimeFrameCandle> _candles) { foreach (var cnld in _candles) { Logger.Debug("TotalVolumeSmartCom{0}".Put(cnld.TotalVolume)); } }

И прямым подсчетом:

        Trader.NewTrades += (trades => 
        {   foreach(var trade in trades)   
            {   
                total_trades_count++;
            }
        });

total_trades_count сбрасывается в OnCandlesFinished

esper
esper

Так вы сравниваете число сделок с суммарным объемом по всем сделкам.

andy_baka_
andy_baka_
andy_baka_ Автор

Да, запутался в трех соснах. Спасибо, Александр