Tinkoff Spread Strategy

Java trading robot for https://github.com/Tinkoff/invest-robot-contest

View the Project on GitHub i-wonderful/tinkoff-robot-spread

Документация Tinkoff Robot Spread

Проект на java 11, сборка maven. Используется фреймворк quarkus и его расширения: mutiny, quarkus-hibernate-reactive-panache, quarkus-resteasy-reactive, quarkus-vertx и др. Бд postgresql, запускается в докере. ui на vuejs, взаимодействие с бекендом как по rest так и по eventbus.

Запуск.

1. Указать токен

В файле настроек ./main/resources/application.properties параметр robot.token.real и токен песочницы robot.token.sandbox. Выставить флаг работы в песочнице robot.sandbox.modе желаемым образом.

2. Запустить бд в докере:

docker run -it --rm=true \
    --name postgres-quarkus -e POSTGRES_USER=trobot \
    -e POSTGRES_PASSWORD=trobot -e POSTGRES_DB=trobot \
    -p 5433:5432 postgres:14.1

3. Сборка и запуск:

./mvnw package
java -jar ./target/quarkus-app/quarkus-run.jar

Открыть в браузере: http://localhost:8081/

Описание настроек в application.properties

Настройки робота

robot.appname - Appname InvestApi
robot.sandbox.mode - Режим песочницы: true/false
robot.token.sandbox - Токен песочницы. Необязательный параметр. Можно не указывать, если работаем с реальным счетом.
robot.token.real - Токен реального счета. Необязательный параметр. Можно не указывать, если работаем со счетом песочницы.
robot.sandbox.init.balance.usd - Начальный баланс песочницы в долларах при пересоздании аккаунта, число double.
robot.sandbox.init.balance.rub - Начальный баланс песочницы в рублях при пересоздании аккаунта, число double.
robot.exchange.names- Биржи с которыми работаем. Обязательный параметр.
robot.margin.allow - Доступна ли маржинальная торговля. boolean

Настройки поиска

robot.strategy.shares.tickers.find - Список акций которыми будем торговать. Тикеры через запятую. Необязательный параметр, если не указывать, будет поиск по всем.
robot.strategy.shares.tickers.exclude - Акции которые исключить из поиска. Тикеры через запятую. Необязательный параметр.
robot.strategy.shares.max.count - Количество акций которыми будем торговать.

Настройки стратегии

robot.strategy.shares.spread.percent - Минимальный величина спреда при которой выставляем заявки. В проценте от цены акции.
robot.strategy.shares.count.one.minute - Число акций обрабатываемых в минуту при поиске по всем акциям. Чтобы избежать превышения лимитов.
robot.strategy.shares.price.max.usd - Торгуем акциями не дороже цены, в долларах.
robot.strategy.shares.price.max.rub - Торгуем акциями не дороже цены, в рублях.

Описание классов и пакетов.

com.byby.trobot.strategy - классы стратегии и управления
com.byby.trobot.executor - исполнители операции с песочницей или реальным счетом
com.byby.trobot.cache - управление кешем
com.byby.trobot.common - глобальные константы, общие классы
com.byby.trobot.config - конфиг, инициализация
com.byby.trobot.controller - контроллеры
com.byby.trobot.db - работа с бд

com.byby.trobot.service - сервисы работы с tinkoff api

to be continued…