WLM1ke / poptimizer

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

Оптимизация портфеля в течение дня #96

Closed ArjaraGit closed 2 years ago

ArjaraGit commented 2 years ago

Добрый день Подскажите пожалуйста: метод optimize, выдающий рекомендации - его следует запускать несколько раз в течение дня до тех пор пока он не покажет что оптимизировать больше нечего? или один раз в день? т.е.:

WLM1ke commented 2 years ago

Оптимизатор использует линейную аппроксимацию для построения рекомендаций. Предполагается, что вы должны совершать небольшие сделки (~1% от стоимости портфеля), потом повторно запускать оптимизатор для уточнения рекомендаций и т.д. пока не останется рекомендаций на продажу. В результате останется одна рекомендация (PENDING) - это лучшая рекомендация на покупку, чтобы было ясно, куда тратить кэш, если он остался или внесен на счет.

Questtt commented 2 years ago

@WLM1ke я правильно понимаю, что совершать небольшие сделки(~1% от стоимости портфеля) в течение дня до тех пор пока не появится рекомендация (PENDING) ? Т.е. по сути до тех пор, пока портфель не оптимизируется ?

WLM1ke commented 2 years ago

@Questtt да. Какой-то критической необходимости сделать все за один день нет. Обычно похожие рекомендации по оптимизации сохраняются достаточно долго, и их вполне можно осуществлять в течении нескольких дней.

ArjaraGit commented 2 years ago

@WLM1ke , спасибо подскажите еще один момент: оптимизатор hmean отображает стоимость лота LOT_price. вы как то ориентируетесь на них? например, выставляете заявки на покупку/продажу по указанной оптимизатором цене. или торгуете по текущим ценам?

WLM1ke commented 2 years ago

@ArjaraGit это не мой код, я в нем не ориентируюсь. Pull request реализовал @RomaKoks для своих целей - я замерджил, так как переключение на него стоит под настройками, но в деталях я не ориентируюсь, как его он использует

RomaKoks commented 2 years ago

@ArjaraGit LOT_price - цена лота на последний день (в базе) она не расчетная, соответственно это не рекомендация, а слегка устаревший факт. Оптимизатор hmean просто делает несколько (~10 по дефолту) сделок объемом ~1% каждая с ценами последнего дня. Он не учитывает оборотные издержки, а просто продает имеющиеся позиции с худшим градиентом и покупает с лучшим. Модели используют суточные данные, они будут выдавать одинаковый результат в течение всего дня.

ArjaraGit commented 2 years ago

@RomaKoks, спасибо. Не понял про "Модели используют суточные данные, они будут выдавать одинаковый результат в течение всего дня" Если не менять ничего в ямль файлах с количеством бумаг, то - да, повторный запуск покажет те же рекомендации. Но если выполнить рекомендации по hmean (купить продать указанное количество) и внести изменения по счету в ямль, то повторный запуск оптимизатора покажет новые рекомендации

@WLM1ke, оптимизатор resample - если оптимизатор рекомендует продавать бумагу - вы просто продаете все имеющееся количество? или какой-то процент (какой - решаете для себя сами)? Рекомендации покупать, соответственно, на какой-то процент от свободных средств. я ведь правильно понимаю?

RomaKoks commented 2 years ago

@ArjaraGit да, но вы можете запустить его один раз, просто изменив дефолтные параметры. Грубо говоря, он "перезапускается" сам ~10 раз по дефолту, вы можете изменить этот дефолт путем увеличения или уменьшения порогов на оборот.

ArjaraGit commented 2 years ago

@RomaKoks, теперь понял, спасибо

WLM1ke commented 2 years ago

@ArjaraGit

Так как рекомендации строятся на основе линейного приближения и меняются по мере изменения позиций, в общем случае рекомендую совершать сделки маленькими порциями (порядка 1% от портфеля) и действовать дальше с учетом уточненных рекомендаций.

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

После этого продавайте маленькими порциями и покупайте на полученные деньги.

ArjaraGit commented 2 years ago

@WLM1ke, спасибо