Клиент для Тинькофф Инвестиции представляет собой платфлому для запуска торговых роботов.
Демо интерфейса доступно в папке 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