Path: blob/master/ invest-robot-contest_trading_bot-master/Readme.md
5925 views
Торговый робот для Тинькофф Инвестиции
⚠ ВНИМАНИЕ ⚠
Данный бот рекомендуется использовать только в ознакомительных целях.
Торговый робот не гарантирует получение прибыли.
Перед использованием торгового бота необходимо тщательно изучить рынок, а также акции, которые Вы планируете использовать для торговли.
Для наилучшей торговли различные акции требуют индивидуальной настройки торговой стратегии.
⚠ ВНИМАНИЕ ⚠
Оглавление
Описание
Данный торговый робот представляет собой телеграм-бот, который позволяет:
Просматривать доступную валюту на счёте
Просматривать доступные бумаги на счёте
Просматривать открытые ордера и закрывать их по требованию
Покупать ценные бумаги в чате
Продавать ценные бумаги в чате
Просматривать статистику по торговым стратегиям
Выводить часовые и 15-минутные графики с торговыми индикаторами
Указывать направление и силу тренда акций
Запускать или останавливать торговые стратегии из чата
Главное особенностью данного торгового бота является его понятность и простота в использовании. Любой пользователь может без предварительного изучения списка команд или теории по трейдингу воспользоваться данным проектом.
Предполагается, что пользователь будет использовать данного торгового робота в качестве вспомогательного инструмента для совершения сделок.
В дальнейшем планируется доработать функционал, чтобы пользователи могли выбирать различные торговые стратегии, а также настраивать их под каждую конкретную акцию.
Обычный режим
Пользователь может выбрать свой основной аккаунт Тинькофф Инвестиции для работы с торговым роботом.
В таком случае все операции будут проходить на реальном счёте:
На покупку акций тратятся настоящие деньги с брокерского счёта;
Покупаются/продаются настоящие акции, находящиеся в Вашем портфеле;
Покупки/продажи осуществляются только во время работы биржи.
Песочница
Для тестирования работы торгового робота пользователь может создать аккаунт-песочницу. Данное действие можно осущетсвить непосредственно в торговом боте.
Аккаунт-песочница позволяет:
Добавлять неограниченное количество валюты на счёт;
Покупать/продавать акции в неограниченном количестве;
Покупать/продавать акции в любое время суток.
Песочница позволяет протестировать возможности торгового робота без рисков, так как все действия происходят на специальном счёте.
Запуск
Для запуска торгового бота необходимо:
Создать файл .env (по примеру .env.example) с указанием токена Телеграм-бота.
BOT_TOKEN - токен бота телеграм
Установить необходимые библиотеки из requirements.txt.
Requirements
Для запуска торгового бота требуются следующий библиотеки, описанные в requirements.txt:
Интерфейс
Начало работы:
Покупка акции:
Добавление акции в торговую стратегию:
Настройка торговой стратегии:
Поиск бумаги:
Анализ бумаги:
Песочница
Добавление денег:
Закрытие песочницы:
Торговая стратегия
При разработке данной стратегии было решено выбрать наиболее популярные и зарекомендовавшие себя индикаторы и составить набор правил, по которым будут совершаться покупки и продажи. В данной стратегии используется 4 индикатора:
EMA с периодом 7 дней и EMA с периодом 21 день для определения точек входа и выхода из сделки;
MACD для определения направления тренда;
ADX для определения силы тренда.
Несмотря на то, что некоторые используемые индикаторы могут давать инвестору схожую информацию, было решено использовать их совместно для более точной работы стратегии.
Покупка будет осуществляться при выполнении всех условий сразу:
Линия быстрой скользящей средней (EMA 7) пересечёт снизу медленную скользящую среднюю (EMA 21) и будет находиться сверху – возрастающий тренд;
Уровень MACD будет находиться выше нуля – возрастающий тренд;
Уровень ADX будет больше 20 – цена не будет стоять на месте.
Продажа будет осуществлять при выполнении одного из условий:
Цена возросла достаточно (тейк-профит);
Цена опустилась слишком низко (стоп-лосс);
Линия быстрой скользящей средней (EMA 7) пересечёт сверху медленную скользящую среднюю (EMA 21) – начало убывающего тренда;
Консолидация MACD – уровень MACD стоит на одном месте долгое время, что может говорить о возможном развороте;
Резкое снижение уровня MACD – нисходящий тренд.
Тестирование эффективности
Для тестирования эффективности было решено запустить разработанный алгоритм на исторических данных за последние 3 недели.
Алгоритм совершает покупки и продажи аналогично с реальными условиями. Только вместо выставления ордеров алгоритм хранит данные о всех возможных операциях в памяти. Данные о теоретических покупках и продажах заносятся в таблицу для дальнейшего анализа.
Такой подход позволяет оперативно настраивать алгоритм, корректировать его параметры и исправлять ошибки.
Стоит отметить, что все вычисления производятся только на основе значений за прошедшие периоды времени, поэтому
Акции QIWI
Проведём тестовый запуск алгоритма для акций QIWI.
На графике зелёными полосками выделены "теоретические" покупки, а красными - "теоретические" продажи.
Также стрелками показывается направление тренда.
В итоге мы также получаем таблицу со всеми операциями. Можно заметить, что большинство операций были успешными - алгоритм покупает по низкой цене и продаёт по высокой.
Также можно заметить, что не все операции были успешными, так как алгоритму приходилось продавать по цене ниже той, что была указан при покупке.
Тем не менее алгоритм показал положительный результат, и теоретически пользователь получил бы прибыль в 36₽ за 3 недели (около 12% от начальной стоимости акции).
Акции СОЛЛЕРС
Аналогичный тестовый запуск алгоритма был проведён для акций СОЛЛЕРС.
Заметим, что теоретически пользователь также получит прибыль в 30₽ (около 17%).
Вывод
Алгоритм доказал свою эффективность при работе на исторических данных. Таким образом, данный алгоритм можно применять в реальных условиях.
Другие примеры выполнения тестового алгоритма с различными ценными бумагами можно изучить в папке с тестовыми результатами:
Структура торгового робота
bot/ - каталог с файлами телеграм-бота
handlers/ - обработчики сообщений
str1_handlers/ - обработчики, отвечающие за торговые стратегии
keyboards/ - клавиатуры для бота
config/ - файлы конфигураций
crypto_rsa.py - создание ключей шифрования
personal_data.txt - получение токена, id и других данных
img/ - каталог с изображениями
str1/ - стратегия 1
graph/ - графики
ind/ - таблицы с индикаторами
test/ - тестовые алгоритмы
operations/ - операции пользователей
pandas_style/ - стили для таблиц pandas
trading/ - функции трейдинга
candles/ - функции получения свечей
strategy/ - торговые стратегии
db/ - создание базы данных
main.py - запуск бота
Контакты
TG: @mordvintsevmv
e-mail: [email protected]
Планы
Работа программы
Везде try except
Оптимизировать создание графика, если возможно
Уведомления об изменении цены?
Украшение
Украсить весь текст
Написать файл Readme до конца
Сделать пункт с помощью
Сделать приветственный экран со ссылками
Дополнить каждый пункт сопроводительным текстом
Будущее
Новая стратегия
Новые индикаторы
Готово
Запись всех сделок
Добавить "Лучшая цена"
Добавить удаление бумаги из стратегии
Добавить создание бумаги для стратегии
Вывод всех своих операций
Отредактировать покупку/продажу
Поиск бумаг
Добавить редактирование стратегии по каждой бумаге
Шифровка токена и аккаунта
Исключить время для песочницы
Проверка на правильность токена
Добавить проверку на начало торгов / продажа
Добавить проверку на начало торгов / покупка
Добавить проверку на доступность денег / стратегия
Добавить проверку на начало торгов / стратегия
Добавить поле currency в str1
Проверить весь код
Упростить код
Проверка на токен чтения
Добавить проверку на доступность денег / покупка
Удаление стратегий при изменении токена
Удаление всех стратегий по user_id
Проверка ввода всех данных