1. Описание проекта
2. Задача
3. Общий алгоритм работы и особенности настройки
4. Результаты
Адаптация проекта Автоматичесткий повтор состава портфеля на базе API "Tinkoff-Инвестиции":
исходный портфель под управлением брокера "Тинькофф", целевой - под управлением брокера "Финам".
Заказчик занимается инвестированием через платформу "Tinkoff-Инвестиции". Родственник доверяет ему управление своим портфелем под управлением "Финам". Необходим скрипт, который в автоматическом режиме повторяет сделки заказчика на счете родственника с учетом разницы в размере счетов.
Скрипт запускается заказчиком на время проведения торгов и повторяет совершенные сделки.
Основные условия
- торговля акциями и фондами;
- сделки исполняются по рыночной заявке (гарантированное исполнение, в рамках инвестирования возникающим проскальзыванием можно пренебречь);
- исходный счет находятся под управлением брокера "Тинькофф-Инвестиции";
- целевой счет находятся под управлением брокера "Финам".
Во время основного рабочего цикла скрипта осуществляется просмотр состава исходного счета (счета заказчика), сравнение его с целевым счетом с учетом коэффициента, формирование заданий на покупку/продажу активов и их исполнение.
Для успешной работы скрипта и повтора сделок коэффициент объема совершаемых сделок рассчитывается заказчиком заранее и зависит от соотношения общего размера счетов. Коэффициент может быть дробным, например:
- исходный и целевой счета равны: ratio_account = 1.0
- исходный счет 200 т.р., целевой - 100 т.р.: ratio_account = 0.5
- исходный счет 50 т.р., целевой - 125 т.р.: ratio_account = 2.5
Коэффициент не должен быть меньше соотношения:
При определении объема сделки на целевом счете производится округление до целого количества лотов в меньшую сторону, таким образом, при коэффициенте меньше 1.0 в случае совершения сделки объемом в 1 лот на исходном счете на целевом сделка не будет осуществлена.
Работа скрипта завершается нажатием сочетания клавиш Ctrl+C.
Настройки указываются в файле .env, располагающемся в корне директории скрипта.
Необходимое содержимое файла:
TOKEN_SOURCE = t.1XXXXXXXXXXXXXXXXXXXXQ
TOKEN_TARGET = f.vXXXXXXXXXXXXXXXXXXXXg
period_reload = 1
ratio_account = 2.0
- TOKEN_SOURCE - токен доступа для работы с TINKOFF INVEST API исходного счета
- TOKEN_TARGET - токен доступа для работы с FINAM API целевого счета
- period_reload - интервал опроса состояния счетов в секундах
- ratio_account - коэффициент объема совершаемых сделок
Подробнее о токенах доступа для работы с TINKOFF INVEST API
Подробнее о токенах доступа для работы с FINAM API
!!!ВНИМАНИЕ!!! Не публикуйте в публичных репозиториях значения токенов доступа и не передавайте их посторонним лицам!
Также обращаю внимание, что брокер должен быть уведомлен о том, что торговые операции по вашему счету проводит третье лицо - подробнее о последствиях.
- заказчик перестал тратить время на повтор совершенных им сделок на счете родственника;
- значительно сократилось время повтора сделок, что в отдельных случаях также сократило разницу между ценой совершения сделки заказчиком на своем и на счете родственника;
- заказчик перестал тратить время на вычисление объема совершаемых дублируемых сделок;
- для совершения сделок заказчику предоставляется доступ родственником посредством использования токена только к отдельному счету, а не к личному кабинету целиком.