В Trader.NewTrades сделки приходят в прямом порядке, а в MarketDepthGenerator.Generate(MarketDepth data, Security security, IEnumerable<Trade> trades) сделки в trades записаны в обратном порядке.
Возможно фича, но по-моему баг.
- При сведении сделки допустим стакана
OFFER 200 BID 100
c виртуальной заявкой SELL 50 сделка будет по цене TRADE=100
Таким образом перекос засчитывается в пользу заявки стратегии.
Нельзя переделать чтобы сделка засчитывалась по цене 100 (т.е. на худший для стратегии случай)?
Иначе получаются слишком оптимистичные результаты тестирования.
Kommentare (5)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Наверное, описка. Предлагаете сделку по цене 50?
C учетом того что ByTrendMarketGenerator использует эти сделки для построения стакана, лучще была бы таже последовательность что и в событии NewTrades
Нет, именно по 100. Поясню почему.
Я сделал кастомный генератор стакана, который генерирует стакан для последовательности сделок вверх как лучший бид=максимальная цена, для последовательности сделок вниз лучший аск=минимальная цена. Это приводит к следующей картинке
Здесь розовые квадраты на цене 150030 - виртуальная заявка на продажу. Красные квадраты - это заявки аск в стакане, зеленые - заявки бид в стакане.
Этот стакан - очередная попытка более-менее. корректной симуляции лимиток, о чем мы уже много писали, но решения устраивающего всех так и не нашли.
Так вот, сгенерировал я стакан 150085/150090 в надежде что моя лимитка исполнится ровно по своей цене 150030. А она исполняется по 150085. Понятно, что в реальности она исполнится по 150030. Отсюда и просьба.
Да, понятно. Видимо, для истории недостаточно одного стакана в момент времени. Для правильного матчинга нужны и предыдущие стаканы, чтобы правильно рассчитать динамику.
Все выглядит так, будто это фича реквест к 3.1.🙂 Право же, для 3.0 уже нужен релиз.
То есть когда мы в цикле foreach (var trade in trades) {
обрабатываем сделки они не обязательно в том порядке в каком были в квике?
Да, не обязательно. Просто так получается, что они идут в том порядке (ДДЕ присылает упорядоченно). Но сам порядок никто не контролирует больше.