Получи случайную криптовалюту за регистрацию!

На очереди работа с брокерами в BackTrader. В архитектуре BT | Финансовая Лаборатория

На очереди работа с брокерами в BackTrader.

В архитектуре BT к Cerebro можно подключить только одного брокера. Внутри этого брокера можно выбрать только 1 счет при подключении.

cerebro = bt.Cerebro()
cerebro.setbroker(broker)

Нужно сделать так, чтобы для каждой ТС, добавленной к Cerebro, можно было бы выбирать брокера и счет.

Самое простое решение для работы с разными брокерами - сделать отдельное окружение Python для каждого брокера. Под каждым окружением запустить свою версию Cerebro с привязанным брокером и торговыми системами.

Разбить красиво на счета не получится, т.к. BT использует get_notification, get_cash, get_value, get_position для анализаторов показателей торговых систем (например, коэфф. Шарпа) и наблюдений (например, изменение счета, точки входа/выхода, просадка). Если внутри Cerebro менять счета, то эти функции будут сбиваться, и выдавать неверные значения.

Вот дискуссия про работу на нескольких брокерах/счетах.

Чтобы из одного Cerebro работать с несколькими брокерами и несколькими счетами в одном брокере, нужно переделывать архитектуру BackTrader. Посмотрим, насколько это сложно...