TinvestOptions
TinvestOptions
Разработка и опробование стратегий торговли опционами
Стратегия
- В результате не хитрого технического и фундоментаоьного анализа выбирается актив, который, как предполагается, должен пойти вниз;
- Под этот актив подбирается PUT опцион (1 к 1) при котором окно убыточности будет наиболее узким;
- При прохождении линии окупаемости опциона близко к графику цены БА можно настроить количество опционов на одну акцию;
- Покупается актив и опцион под него в выбранном соотношении;
- Устанавливается уведомление о прохождении графика цены линии окупаемости опциона вверх;
- Ждем даты исполенения опциона, при этом если цена БА подымается выше линии окупаемости опциона, дожидаемся оптимальной цены БА и продаем его;
- По исполнению опциона, в любом случае кроме того когда БА был продан по пункту 6, смотрим на тенденцию цены и либо снова покупаем под БА опцион, либо дожидаемся установления цены БА на линии окупаемости опциона и тогда продаем его;
- Пункт 7 выполняется столько раз, сколько это возможно с учетом падения цены БА.
Что такое окно убыточности:
Боковые линии окна - это дата покупки опциона(слева) и исполнения(справа)
Разработка приложения
GUI приложения будет работать в блокноте jupyter lab на библиотеке Bokeh.
Выходные данные:
- Графическая часть - график Bokeh;
- Текстовая часть - виджет Bokeh.
Входные данные:
- Данные с базы данных;
- Данные с Tinvest API;
- Вводимые данные с помощью виджетов Bokeh.
Приложение разбито на:
- Два модуля:
- Модуль для работы с API базы данных;
- Модуль для работы с API Tinvest;
- GUI в блокноте jupyter lab;
- Две базы данных SQLite.
База данных
Описание
База данных разработа на SQLite, легкая БА, не требующая работы отдельного сервера под неё, поддержка асинхронного режима, встроенная библиотека на python.
Структуры Базы данных
В первой базе данных три таблицы:
- Акции;
- Валюта;
- Металлы. Во второй базе данных:
- Действующие и исполненые опционы.
Акции
| Тикер | Название | UID | FIGI | Лотность | Класс-код | UUID |
|---|---|---|---|---|---|---|
| значение | акция1 | значение | значение | значение | значение | значение |
| значение | акция2 | значение | значение | значение | значение | значение |
| значение | акцияN | значение | значение | значение | значение | значение |
Валюта
| Тикер | Название | UID | FIGI | Лотность |
|---|---|---|---|---|
| значение | валюта1 | значение | значение | значение |
| значение | валюта2 | значение | значение | значение |
| значение | валютаN | значение | значение | значение |
Металлы
| Тикер | Название | UID | FIGI | Лотность |
|---|---|---|---|---|
| значение | металл1 | значение | значение | значение |
| значение | металл2 | значение | значение | значение |
| значение | металлN | значение | значение | значение |
Действующие и исполненые опционы
Предидущие три таблицы являются как бы статичными - они содержат в себе те инструменты по которым существуют опционы, все они заполнятся единожды и потом будут только обновляться в ручном режиме, когда появляются предпосылки того что в Тинвест добавились или отменились некоторые инструменты по которым выписываются опционы. При работе программы выбирается инструмент, находящийся в одной из трех таблиц, по API Tinvest получаем данные для построения годовго графика волотильнсти цены и из таблицы опционов подтягиваются данные по действующим и исполненым опционам, если они есть, для построения окон убыточности на графике изменения цены.
| Тикер БА | Направление опциона | Страйк | Премия | Лотность | Цена БА на момент покупки | Цена окупаемости БА | Дата покупки или пролонгирования | Дата исполнения | Признак - покупка или пролонгирование |
|---|---|---|---|---|---|---|---|---|---|
| Тикер БА1 | PUT | 130 | 9,3 | 10 | 356,7 | 380,9 | 11.11.2024 | 31.11.2024 | True |
| Тикер БА2 | PUT | 230 | 9,3 | 10 | 656,7 | 680,9 | 11.11.2024 | 31.11.2024 | True |
| Тикер БА1 | PUT | 135 | 9,3 | 10 | 366,7 | 390,9 | 20.11.2024 | 06.12.2024 | False |
Создание и обновление БД
Первая БД будет создаётся и обновляется(перезаписывается) в ручную в отдельном блокноте, вторая подтягиваеи данные в основном коде(в программе GUI). Для срздания и обновления используется встроенная библиотека sqlite3 и pandas.
Боковые линии окна - это дата покупки опциона(слева) и исполнения(справа)