Skip to main content

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

tinvest-robot-perevalov-0.1.1.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tinvest_robot_perevalov-0.1.1-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file tinvest-robot-perevalov-0.1.1.tar.gz.

File metadata

  • Download URL: tinvest-robot-perevalov-0.1.1.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for tinvest-robot-perevalov-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c309a5931830be33d3742ca4ac53cd1341128152bfe31b3c2bb949b5d0ec395a
MD5 17fe7bee5630c7a3cb03e3680e27131e
BLAKE2b-256 4a58cc10870314d733eee067fa02bb09e22df6514d81c2dd4c2f50ea1d13a2c4

See more details on using hashes here.

File details

Details for the file tinvest_robot_perevalov-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for tinvest_robot_perevalov-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6e8bb873b05603fc38d0e07bb713a5ab16cafc40d258f44fa2cfbeb872e9d95e
MD5 ad207c79b5f125e6c8a0950b82195c94
BLAKE2b-256 0974f17d60fee2cc5c537b368d4fdf5e34a8c1efd44766c21bbd8fb6fb004d10

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page