Целью курсового проекта является написание торгового робота на платформе kraken-demo. Демонстрационная платформа не требует никаких персональных данных при регистрации и выполняет заявки в песочнице, не требуя никаких реальных средств для взаимодействия с платформой.
- Релизован механизм аутентификации робота на демо-платформе для получения информации и реализации заявок.
- Реализованы REST-эндпоинты для работы с роботом (задание инструмента для работы, настройка параметров, запуск/стоп робота и т.д.)
- Робот должен поддерживать http протокол для работы с демо-биржей.
- Робот должен уметь подключаться с помощью web-socket до сервера демо-биржи для подписки на стаканы по инструментам.
- Робот должен имплементировать один любой торговый индикатор для принятия решения по выставлению заявки.
- Информацию о всех выставленных заявках робот должен хранить в Postgres хранилище.
- Информацию о всех выставленных заявках робот должен отправить в Telegram-бота.
- Критичный функционал программы должен быть покрыт unit-тестами.
- Должна быть оформлена документация по запуску и управлению роботом (README обязательно, swagger ui необязательно)
-
Регистрация/аутентификация на платформе - здесь можно зарегистрироваться и получить токен для работы с демо-платформой.
-
REST, WS эндпоинты для работы с биржей - обратите внимание, что мы работаем с демо-биржей, у которой в url есть префикс "demo-", например demo-futures.kraken.com вместо futures.kraken.com. Документация по работе с платформой тут.
-
Торговые индикаторы wiki - если нет желания заниматься реализацией математики в коде, допустимо использовать простейший индикатор типа stop-loss/take-profit. Логика для него выглядит следующим образом: купи/продай при достижении заданного значения цены. Работа с индикатором должна быть максимально абстрагирована от остальной логики робота, для удобства проверки - мы не будем смотреть реализацию индикатора, но будем смотреть как он используется в роботе.
-
Хранение данных допустимо как с использованием ORM так и без него.
-
Создание и настройка телеграм-бота: core.telegram.org/bots
-
Чем выше покрытие юнитами - тем лучше. Но обязательным считается покрытие не менее 25% функционала.
- Студент рассказывает про свой проект, представляет архитектуру проекта, вкратце представляет используемый индикатор.
- Студент демонстрирует документацию проекта, запускает робота по инструкции.
- Студент демонстрирует работу с роботом, настройку и запуск стратегии по выбранному инструменту.
- Студент демонстрирует результаты работы робота - записанные в бд заявки, сообщения от бота в telegram. Допустимо показывать заранее собранные результаты запуска программы, если стратегия не гарантирует быстрого результата на платформе.
- Студент демонстрирует результаты coverage для выполненных тестов в проекте.
- Студент заканчивает презентацию проекта, отвечает на вопросы.