Торговый бот для брокера "Т-инвестиции" (бывший "Тинькофф инвестиции").
Данный бот позволяет автоматизировать выполнение торговых стратегий.
Сохранение и обновление информации о статусах торговых поручений может выполняться с помощью SQLite в базе данных, либо через telegram-бота в личном чате.
Модульная структура позволяет дополнять функционал бота, а также реализовывать собственные торговые стратегии.
В качестве примера представлена стратегия sma на основе скользящих средних (не является индивидуальной инвестиционной рекомендацией).
Для работы торгового робота необходимо заполнить файлы .env и instruments.json согласно представленным примерам.
Содержание файла .env:
- Токен инвестора. Можно получить в личном кабинете в приложении брокера.
- ID аккаунта. Можно оставить пустым - будет использоваться первый найденный аккаунт.
- SANDBOX. Если
FALSE
, то торговля будет вестись на реальном брокерском счёте. Значение по умолчанию -TRUE
, дляторговли в "Песочнице".
Содержание файла instruments.json:
- figi - идентификатор финансового иструмента
- strategy - параметры стратегии
- name - название стратегии, согласно тому, как оно указано в fabric.py
- parameters - набор параметров для работы стратегии
- statistics - параметры обработчика статистики
- name - название обработчика, согласно тому, как оно указано в handler.py
- parameters - набор параметров для работы стратегии
-
Клонируйте репозиторий в любую папку на компьютере:
git clone https://github.com/DarenskyRoman/trading-bot-tinkoff.git
-
Перейдите в папку с приложением:
cd trading-bot-tinkoff
-
Установите необходимые зависимости:
pip install -r trading-bot-tinkoff.txt
-
Запустите приложение:
python main.py
-
Клонируйте репозиторий в любую папку на компьютере:
git clone https://github.com/DarenskyRoman/trading-bot-tinkoff.git
-
Перейдите в папку с приложением:
cd trading-bot-tinkoff
-
Создайте Docker image:
docker build -t trading-robot-image .
-
Запустите Docker container:
docker run --name trading-robot-container trading-robot-image
После остановки торгового бота может быть необходимо отменить все ещё неисполненные торговые поручения. Для этого, после остановки контейнера/системного процесса с ботом, нужно в терминале в папке с приложением выполнить:
python cancel_orders.py