Комментарии к постам CloseToAlgoTrading
Лучше торговать одну стратегию сайзом 10, чем 100 стратегий сайзом 0,1.
Если стратегий разные и «взаимоисключающие» наблюдать как каждую секунду сыпятся ордера +0,1;-0,1+0,1;-0,1… а позиция >50% времени находится у 0.
В варианте где менеджер следит за выставленными флагами есть одно но… если менеджер опрашивает флаги сам то придется делать это циклично, а это опять таки явная задержка
Спасибо за ответ :).
Моя архитектура далека от идеальной), с одной стороны скорость моих стратегий этого и не требует, с другой по чуть-чуть всё равно что-то подкручиваю. Но мне она нравится). И по функционалу и чисто эстетически)).
У меня execution сервис, он принимает на вход сигналы (сигнал — ну типа тикер, объем, направление). Дальше эта хреновина уже брокеру соответствующему это направляет в виде заявки. Этому сервису без разницы кто его дергает, но дергают его стратегии. И стратегии это тоже отдельные приложения). Например, 10 стратегий это 10 запущенных приложений, они берут данные, что-то вычисляют и в ExecutionAPI пуляют набор сигналов. Стратегия за один run может сгенерировать несколько сигналов, но даже они сейчас в ExecutionAPI прилетят последовательно (надо метод для пакетной отправки сделать). В общем стратегически грамотное место чтобы инкапсулировать логику сведения ордеров уже есть). Правда само сведение пока не особо нужно).
Если правильно разрабатывать архитектуру алго, то такие вопросы наверное сами решаются в процессе разработки.
Если алго продукт очень большой, то правильней будет, если он состоит из независмых модулей: стратегии, коннекторы, менеджер ордеров, менеджер биржевых данных.
Выше описанная задача решается исключительно в рамках менеджера ордеров. Фактически тут будет зашит конвертер, на входе которого много ордеров, на выходе несколько.