WLM1ke / poptimizer

Оптимизация долгосрочного портфеля акций
The Unlicense
151 stars 28 forks source link

Покажите, пожалуйста, пример использования библиотеки #63

Closed coolmarat closed 2 years ago

WLM1ke commented 2 years ago

Могу описать только основные шаги - дальше лучше разбираться в коде самому.

Основные функции для запуска содержатся в файле: https://github.com/WLM1ke/poptimizer/blob/master/poptimizer/__main__.py

Сначала необходимо запустить функцию: https://github.com/WLM1ke/poptimizer/blob/3cf4de89ca3eae346e7e1e9cb8e6821bf9c4cac6/poptimizer/__main__.py#L9

Она должна проработать хотя бы неделю, чтобы создать модели для предсказания рисков и доходности отдельных инструментов.

Далее нужно создать файл со своим текущем портфелем по аналогии: https://github.com/WLM1ke/poptimizer/blob/master/portfolio/base.yaml или заполнить прям в нем - программа автоматически объединяет информацию из все yaml файлов в папке

Далее можно запускать функцию для получении сводной информации о портфеле и рекомендациях по его изменению: https://github.com/WLM1ke/poptimizer/blob/3cf4de89ca3eae346e7e1e9cb8e6821bf9c4cac6/poptimizer/__main__.py#L20

swpman commented 2 years ago

Пожалуйста, помогите разобраться с интерпретацией результатов работы программы.

Тестовый портфель:

RUR: 100000 USD: 0 positions: PLZL: 100 POLY: 100 GAZP: 100 SBER: 100

Получен следующий результат:

ОПТИМИЗАЦИЯ ПОРТФЕЛЯ

forecasts = 160 p-value = 5.00%

        LOWER     UPPER     COSTS  PRIORITY

SMLT 0.316928 0.428618 0.039070 0.277858 MTLRP 0.292730 0.379801 0.034649 0.258081 MTLR 0.233139 0.278975 0.016810 0.216328 RASP 0.233305 0.291625 0.019111 0.214194 ISKJ 0.284943 0.357344 0.088268 0.196675 SBER 0.158059 0.171429 0.005055 0.153004 . . . . ZILL 0.184681 0.204155 0.170502 0.014178 RZSB 0.172058 0.185113 0.160306 0.011752 VTBB 0.049874 0.094875 0.039504 0.010370 UNKL 0.157678 0.173540 0.148980 0.008698 FXRB 0.044050 0.091109 0.036304 0.007746 RGSS 0.162318 0.185308 0.156145 0.006173 SFIN 0.139611 0.159202 0.138273 0.001338 PLZL -0.012294 -0.010844 0.014649 -0.010844

Правильно я понимаю, что рекомендуется продавать PLZL и покупать остальное в соответствии со знаком PRIORITY? Всю позицию по PLZL или какой то объем? Как поделить сумму в 100000 для получения баланса в портфеле?
Спасибо.

WLM1ke commented 2 years ago

Сделки необходимо совершать на небольшую долю портфеля (~1%), после этого смотреть на обновлённые рекомендации.

Сначала закупиться на кэш, а потом совершать сделки в соответсвии с приоритетом - продавать самую отрицательную бумагу и покупать самую положительную.

swpman commented 2 years ago

Спасибо, а что отражают LOWER и UPPER?

WLM1ke commented 2 years ago

Нижняя и верхняя граница доверительного интервала для градиента