TinvestOptions

0

Описание

Языки

  • Jupyter Notebook98,1%
  • Python1,9%
README.md

TinvestOptions

Разработка и опробование стратегий торговли опционами


Стратегия

  1. В результате не хитрого технического и фундоментаоьного анализа выбирается актив, который, как предполагается, должен пойти вниз;
  2. Под этот актив подбирается PUT опцион (1 к 1) при котором окно убыточности будет наиболее узким;
  3. При прохождении линии окупаемости опциона близко к графику цены БА можно настроить количество опционов на одну акцию;
  4. Покупается актив и опцион под него в выбранном соотношении;
  5. Устанавливается уведомление о прохождении графика цены линии окупаемости опциона вверх;
  6. Ждем даты исполенения опциона, при этом если цена БА подымается выше линии окупаемости опциона, дожидаемся оптимальной цены БА и продаем его;
  7. По исполнению опциона, в любом случае кроме того когда БА был продан по пункту 6, смотрим на тенденцию цены и либо снова покупаем под БА опцион, либо дожидаемся установления цены БА на линии окупаемости опциона и тогда продаем его;
  8. Пункт 7 выполняется столько раз, сколько это возможно с учетом падения цены БА.

Что такое окно убыточности: Окно убыточности Боковые линии окна - это дата покупки опциона(слева) и исполнения(справа)

Разработка приложения

GUI приложения будет работать в блокноте jupyter lab на библиотеке Bokeh.

Выходные данные:

  • Графическая часть - график Bokeh;
  • Текстовая часть - виджет Bokeh.

Входные данные:

  • Данные с базы данных;
  • Данные с Tinvest API;
  • Вводимые данные с помощью виджетов Bokeh.

Приложение разбито на:

  • Два модуля:
    1. Модуль для работы с API базы данных;
    2. Модуль для работы с API Tinvest;
  • GUI в блокноте jupyter lab;
  • Две базы данных SQLite.

База данных

Описание

База данных разработа на SQLite, легкая БА, не требующая работы отдельного сервера под неё, поддержка асинхронного режима, встроенная библиотека на python.

Структуры Базы данных

В первой базе данных три таблицы:

  1. Акции;
  2. Валюта;
  3. Металлы. Во второй базе данных:
  4. Действующие и исполненые опционы.
Акции
ТикерНазваниеUIDFIGIЛотностьКласс-кодUUID
значениеакция1значениезначениезначениезначениезначение
значениеакция2значениезначениезначениезначениезначение
значениеакцияNзначениезначениезначениезначениезначение
Валюта
ТикерНазваниеUIDFIGIЛотность
значениевалюта1значениезначениезначение
значениевалюта2значениезначениезначение
значениевалютаNзначениезначениезначение
Металлы
ТикерНазваниеUIDFIGIЛотность
значениеметалл1значениезначениезначение
значениеметалл2значениезначениезначение
значениеметаллNзначениезначениезначение
Действующие и исполненые опционы

Предидущие три таблицы являются как бы статичными - они содержат в себе те инструменты по которым существуют опционы, все они заполнятся единожды и потом будут только обновляться в ручном режиме, когда появляются предпосылки того что в Тинвест добавились или отменились некоторые инструменты по которым выписываются опционы. При работе программы выбирается инструмент, находящийся в одной из трех таблиц, по API Tinvest получаем данные для построения годовго графика волотильнсти цены и из таблицы опционов подтягиваются данные по действующим и исполненым опционам, если они есть, для построения окон убыточности на графике изменения цены.

Тикер БАНаправление опционаСтрайкПремияЛотностьЦена БА на момент покупкиЦена окупаемости БАДата покупки или пролонгированияДата исполненияПризнак - покупка или пролонгирование
Тикер БА1PUT1309,310356,7380,911.11.202431.11.2024True
Тикер БА2PUT2309,310656,7680,911.11.202431.11.2024True
Тикер БА1PUT1359,310366,7390,920.11.202406.12.2024False
Создание и обновление БД

Первая БД будет создаётся и обновляется(перезаписывается) в ручную в отдельном блокноте, вторая подтягиваеи данные в основном коде(в программе GUI). Для срздания и обновления используется встроенная библиотека sqlite3 и pandas.