A package that implements a news sentiment based strategy for trading using Tiknoff Invest API
Project description
Tinvest Robot Perevalov
Tinvest Robot Perevalov - это Python Библиотека, реализующая функциональность торгового робота на основе Tinkoff Invest API для Python с торговой стратегией, основанной на анализе тональности новостей.
Описание торговой стратегии
Торговая стратегия основана на анализе тональности новостей. При получении новой новости производится анализ её тональности, в результате которого получаем один из трёх классов: positive
, negative
, или neutral
.
После чего, проверяется наличие упоминания той или иной компании в заголовке новости.
Если компания упомянута, то в случае новости с классом positive
посылается сигнал на покупку акций в заданном количестве.
Если новость с классом negative
, то посылается сигнал на продажу акций в заданном количестве.
Ниже на рисунке представлена концептуальная схема стратегии на определённом примере.
Как видно, ключевым звеном является модуль анализа тональности, в качестве которого используется предобученная нейронная языковая модель (neural language model).
Тестирование торговой стратегии (Backtesting)
Тестирование стратегии проводилось на наборе данных новостей "Historical financial news archive", который содержит в себе новостные данные по 800 компаниям из США за 12 лет (2008-2020).
В ходе тестирования был выбран диапазон с 2012 по 2020 годы включительно по 100 наиболее упоминаемым компаниям из набора данных. Поскольку некоторые компании оказались недоступны через сервис Тинькофф Инвестиции, в итоге в процедуру тестирования было включено 90 компаний.
В рамках наблюдаемого года (например 2013) бралось соответствующее подмножество новостей упорядоченных по дате по возрастанию. После чего по каждой из компаний проверялось упоминание в той или иной новости и далее использовался алгоритм стратегии описанной выше со следующими условиями:
- Комиссия за операции не учитывалась;
- Покупка в шорт (в минус) недоступна;
- Покупка и продажа производится по одному лоту за раз;
- Финансовый результат считался по определённой бумаге за конкретный год;
- Данные по цене (свечи) брались из API Тинькофф Инвестиции;
- Если на конец года на балансе имелось ненулевой число акций, то финальный баланс на год рассчитывался по цене закрытия бумаг в последний торговый день года.
Ниже представленые некоторые графики по результатам тестирования.
На графике мы видим, что доходность была положительной почти на всех годах, за исключением 2018. Также, очевидно что доходность не зависит от количества операций по бумагам (это было так же подтверждено анализом коррелляции).
На графике не уместились все тикеры, однако в топ-3 самых доходных компаний входят: TSLA (64.72%), NFLX (28.62%), AAPL (18.68%) в среднем за год. Также, очевидно, что большинство бумаг оказались с положительной доходностью.
Как запустить решение (How to run)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for tinvest-robot-perevalov-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c309a5931830be33d3742ca4ac53cd1341128152bfe31b3c2bb949b5d0ec395a |
|
MD5 | 17fe7bee5630c7a3cb03e3680e27131e |
|
BLAKE2b-256 | 4a58cc10870314d733eee067fa02bb09e22df6514d81c2dd4c2f50ea1d13a2c4 |
Hashes for tinvest_robot_perevalov-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e8bb873b05603fc38d0e07bb713a5ab16cafc40d258f44fa2cfbeb872e9d95e |
|
MD5 | ad207c79b5f125e6c8a0950b82195c94 |
|
BLAKE2b-256 | 0974f17d60fee2cc5c537b368d4fdf5e34a8c1efd44766c21bbd8fb6fb004d10 |