Перенёс стратегию с амиброкера, хочу прикинуть какое у неё будет проскальзывание - пытаюсь тестировать на истории.
Стратегия самая обычная пробойная, поэтому входит всегда маркетом. Так как на Фортс маркета нету - вместо него хочу войти лимиткой +-1000 пунктов от текущей цены.
Как это можно сделать чтобы правильно работал SlippageManager на истории? Пробовал так:
вариант 1
var order = base.CreateOrder(direction, price + (direction == OrderDirections.Buy ? 1000 : -1000) , base.Volume);
base.RegisterOrder(order);
this.SlippageManager.Register(order, price); // Пытаюсь вернуть цену обратно
вариант 2
var order = base.CreateOrder(direction, price, base.Volume);
var strategy = new MarketQuotingStrategy(order, new Unit(2000), new Unit(1000));
base.ChildStrategies.Add(strategy);
Пусть у нас Price = 50000. Оба варианта в отчёте показывают для покупки Цена = 51000, Цена (усредн.) = 50030. Проскальзывание = 0. Мне же нужно получить в отчёте: Цена = 50000, Цена (усредн.) = 50030. Проскальзывание = 30.
Comentarios (2)
Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario
SlippageManager на самом деле вовсе не тот менеджер проскальзывания, что в классике. Он работает только с котированием, и учитывает, насколько ушла цена заявки через ReRegisterOrder от первоначально запланированной. Тоесть тут ситуация в стакане как бы второстепенная.
Понял. Жаль что ему нельзя пропихнуть цену, проскальзывание-то он считает - только начальная цена не та. Всё-таки ситуация с маркет-заявками типична.
Ещё вопрос по поводу генерации стакана. В хелпе вижу: TrendMarketDepthGenerator.Generate "Сгенерировать стакан, имитируя спред по направлению изменения цены последних 2х сделок."
Т.е. для генерации стакана используются не будущие тики, а история? Можно как-то в двух словах объяснить как он генерируется?