В Trader.NewTrades сделки приходят в прямом порядке, а в MarketDepthGenerator.Generate(MarketDepth data, Security security, IEnumerable<Trade> trades) сделки в trades записаны в обратном порядке.
Возможно фича, но по-моему баг.
- При сведении сделки допустим стакана
OFFER 200 BID 100
c виртуальной заявкой SELL 50 сделка будет по цене TRADE=100
Таким образом перекос засчитывается в пользу заявки стратегии.
Нельзя переделать чтобы сделка засчитывалась по цене 100 (т.е. на худший для стратегии случай)?
Иначе получаются слишком оптимистичные результаты тестирования.
评论 (5)
登录 或 创建账户, 登录或注册以发表评论
Наверное, описка. Предлагаете сделку по цене 50?
C учетом того что ByTrendMarketGenerator использует эти сделки для построения стакана, лучще была бы таже последовательность что и в событии NewTrades
Нет, именно по 100. Поясню почему.
Я сделал кастомный генератор стакана, который генерирует стакан для последовательности сделок вверх как лучший бид=максимальная цена, для последовательности сделок вниз лучший аск=минимальная цена. Это приводит к следующей картинке
Здесь розовые квадраты на цене 150030 - виртуальная заявка на продажу. Красные квадраты - это заявки аск в стакане, зеленые - заявки бид в стакане.
Этот стакан - очередная попытка более-менее. корректной симуляции лимиток, о чем мы уже много писали, но решения устраивающего всех так и не нашли.
Так вот, сгенерировал я стакан 150085/150090 в надежде что моя лимитка исполнится ровно по своей цене 150030. А она исполняется по 150085. Понятно, что в реальности она исполнится по 150030. Отсюда и просьба.
Да, понятно. Видимо, для истории недостаточно одного стакана в момент времени. Для правильного матчинга нужны и предыдущие стаканы, чтобы правильно рассчитать динамику.
Все выглядит так, будто это фича реквест к 3.1.🙂 Право же, для 3.0 уже нужен релиз.
То есть когда мы в цикле foreach (var trade in trades) {
обрабатываем сделки они не обязательно в том порядке в каком были в квике?
Да, не обязательно. Просто так получается, что они идут в том порядке (ДДЕ присылает упорядоченно). Но сам порядок никто не контролирует больше.