Клиент для Тинькофф Инвестиции представляет собой платфлому для запуска торговых роботов.
Демо интерфейса доступно в папке screenshot
- Создание и запуск торговых роботов
- Отображение портфеля и другой биржевой информации
- Получение общей информации через бота telegram
- Java 11 и выше
- Gradle
Купить, усреднить, продать
- робот покупает первую бумагу по текущей цене, при падении средней цены более, чем на заданный процент, усредняет его, а при повышении цены бумаги более, чем на заданный процент, продает её.
На данный момент настройка осуществляется через файл src/main/resources/robots-config.properties
Для создания нового робота необходимо реализовать интерфейс и его методы com.ildvild.tinkoffInvest.server.robots.Robot
Пример робота - com.ildvild.tinkoffInvest.server.robots.BuyAverageAndSell
Для тестирования робота необходимо создать потомка робота в пакете \historic
с переопределенными методами и написать Unit-тест
Пример робота - com.ildvild.tinkoffInvest.server.robots.historic.BuyAverageAndSellHistoric
Пример теста - com.ildvild.tinkoffInvest.server.robots.historic.BuyAverageAndSellHistoricTest#testBuyAverageAndSell
Скачайте себе исходники и выполните команду сборки
Генерация необходимых файлов
./gradlew clean vaadinPrepareFrontend
Далее запустите, выполнив команду
./gradlew bootRun
Также запуск проекта можно осуществить через Inellij IDEA
Перед первоначальным запуском укажите валидный токен в файле src/main/resources/server-config.properties
Запуск робота осуществляется через пользовательский интерфейс во вкладке Роботы
по кнопке Старт
- Создайте своего бота с помощью стандартных средств Telegram
- Выполните настройку в файле
src/main/resources/telegram-config.properties
#Включение/выключение телеграмм бота telegrambots.enabled = true
#Имя бота telegram-bot-name=TinkoffInvestClient
#Токен бота telegram-bot-token=5300548211:AAEznXTHFuJQfrLly_XJTPSgnegYs2s_kMc
Поддерживаются следующие команды
/robots
- получение статуса роботов/portfolio
- получение краткой информации о портфелях, на которых торгуют роботы
Расширение команд производится в методе com.ildvild.tinkoffInvest.server.telegram.TinkoffInvestBot#onUpdateReceived
Проект логически разделен на клиентскую часть и серверную.
Клиентская часть содержит классы UI и контроллеры к ним
src/main/java/com/ildvild/tinkoffInvest/client/controllers
- контроллерыsrc/main/java/com/ildvild/tinkoffInvest/client/views
- UI
Серверная часть содержит контроллеры для интеграции с Tinkoff Invest API, модель данных для создания роботов и классы для интеграции с telegram
src/main/java/com/ildvild/tinkoffInvest/server/controllers
- контроллерыsrc/main/java/com/ildvild/tinkoffInvest/server/robots
- торговые роботыsrc/main/java/com/ildvild/tinkoffInvest/server/telegram
- telegram
Apache 2.0