Всем привет.
Так получилось, что мне повезло лет 5 назад познакомиться с практикующими трейдерами, которые зарабатывают деньги на управлении капиталом клиентов и делают это успешно. Управляют капиталом по договору, всё честно. Для работы трейдеры используют некоторые инструменты, которые мы написали по их заказу. Эти инструменты облегчают жизнь трейдерам. Одной из фичей этого инструмента (десктоп приложение, плагин к 🇺🇸 InteractiveBrokers или 🇷🇺 quik в зависимости от рынка) является ребалансировка. О ребалансировке написано тут, и тут, например. Если кратенько, то это подход к управлению активами, когда продаем что подоражало для того, чтобы купить что подешевело. Считается, что в долгосроке это даёт дополнительные процентные пункты к общей доходности. Это работает не всегда, некоторые инвесторы не делают ребалансировку, но такой подход приветствуется.
💡 Идея: Бот для ребалансировки и не только
А почему бы не поделиться профессиональным подходом со всеми частными инвесторами на бирже? Например, с помощью телеграм бота, который в нужное время подскажет, что пришла пора ребалансировки - это редкое событие, но важное. Сказано - сделано.
Встречайте, бот-помощник по портфелю 🎉🎊🥳 : https://t.me/portfolio_helper_bot
⚠️ Бот написан небольшой командой на досуге, это надо учитывать и понимать скорость добавления новых фич, но ведем переговоры/поиск инвесторов, чтобы превратиться в стартап.
🏗 Как это всё работает
Присылаем боту портфель (можно текстом, можно excel-файликом. В будущем, будем читать отчет брокеров). В колонке ticker может быть как собственно тикер бумаги, так и название эмитента бумаги. Пример содержания excel файла:
Настраиваем нужный уровень ребалансировки. Пока отклонение от заданного процента бумаг. Например, структура нашего портфеля следующая (не является инвестиционной рекомендацией, случайный набор для наглядности):
Если в какой-то момент доляYNDX
станет равна 30% от портфеля и мы выставили алерт о необходимости ребалансировки - бот любезно сообщит нам об этом и порекомендует продать частьRU000A0JXN21
, чтобы купитьYNDX
до уровня 40% от портфеля.🍽️ Лайфхак: Если вы сформировали свое видение портфеля, но лень считать объемы в текущих ценах - боту можно сказать, что текущий объем бумаг равен 0, а желаемый процент X%. Указать денежные средства с желаемым процентом 0%. И сделать ручной вызов ребаланса (такая функция тоже есть) - бот подскажет в каком объёме и по какой цене создать заявки.
Пример:
Проверяем
77*5171.6 + 594*101.0*10 = 998153.2
⚠️ цена облигаций указывается в процентах, а номинальная стоимость для указанной бумаги 1000 рублей, поэтому пришлось добавить множитель на 10 (101.0/100*1000). Но для пользователя прозрачно - он в любимом приложении/терминале набирает для данной бумаги объём -
594
и цену101
.В дальнейшем добавим напоминание по интервалам.
В нужный момент времени бот сообщит о необходимости ребалансировки и подскажет, что купить, а что продать, в каких объёмах и по какой цене.
📈 Повышаем итоговую доходность портфеля
🍰 Что ещё есть?
Так как бот мониторит текущую цену на рынке, то дополнительно нотифицирует пользователя:
О текущей стоимости портфеля, чтобы не лезть каждый раз к брокеру на сайт, а получать один раз вечером сумму портфеля и радоваться. Пример:
Об изменении общей стоимости портфеля. Например, поставить себе алерт на просадку портфеля на 15%, чтобы принимать решения
Об изменении стоимости позиции в портфеле. Например, для отслеживания рискованной позиции, чтобы зафиксировать прибыль. В убыток же никто не работает, правда? 😉
✨ А что ещё будет?
Roadmap такой
- Добавление западных бирж
NYSE
/NASDAQ
/etc и крипта. Сейчас толькоMOEX
, в ближайшем будущемSPB
- Ребалансировка по отраслям в дополнение к ребалансировке по бумаге
- Бенчмарк текущего портфеля. Может быть, проще купить индекс или фонд? Бот сравнит доходности
- Подбор портфеля по риск-профилю. Ну это не рокет сайнс, фича популярная, но удобнее, когда всё в едином окошке
- Еще есть идеи на отслеживание новостного фона и отчётностей компаний для нотификации, если что-то идет не так, но это больше спекулятивные истории, в первую очередь хотим сосредоточиться на пассивных инвестициях
О нововведениях сообщит сам бот, лайк, подписка)
🏦 А что с моделью монетизации и пользователями ?
Бот пока бесплатен, но в дальнейшем предполагается подписка. Когда начинали разрабатывать бота, сперва казалось, что фиксированная цена за удобство - хорошее решение. Но затем внезапно нас озарило, и мы придумали удачную модель монетизации, смысл которой в следующем. Итог работы бота - потенциал в увеличении итоговой доходности портфеля, а значит естественной моделью будет стоимость, которая зависит от общей стоимости портфеля. Если кто-то управляет портфелем в пару миллионов долларов, то, вероятно, это более платежеспособный клиент, чем айтишник, который после двух бэх со своих 300 какосеков отложил с барского плеча на фондовый рынок треть своей зарплаты.
Первыми пользователями бота стали те самые трейдеры, которые дали инсайт на подобный сервис. У них в наличии десяток портфелей и они довольны до жути автоматизацией процесса по отслеживанию моментов ребаланса.
🌬 Инсайты при разработке
Некоторые планируемые фишки бота вполне способны жить самостоятельно в виде API. Например, приведение отчётов брокеров к единому формату, чтобы можно было делать больше сервисов и создавать рынок инструментов для фондовой биржи. Загружаем в API отчёт брокера, на выходе получаем строгую схему - удобно и много кому может потребоваться. Еще пару инсайтов ниже
🚲 Технологический стек
- Язык -
python
. Для новых фичей планируемgolang
. Python заюзали по причине имеющихся наработок по меню и хорошей библиотекой. В ней в коробке идет сохранение стейта по чату, юзеру. - База данных -
PostgreSQL
. Сперва был SQLite, но как только вынесли получение информации с фондового рынка в отдельный процесс, напоролись на лочку. Благо не так много было написано кода, переход был быстрый. Если планируете несколько процессов, сразу берите что-то отличное от SQLite. - Данные для торгов берём из публичного API MOEX. Съели кактус 🌵 пока пробирались сквозь дебри уже неторгуемых бумаг. Но теперь все отличают TQBR от EQDB и прочих наборов букв для классов инструментов MOEX.
- Для сбора данных с биржи используем
celery
, работает в отдельном процессе (ещё точнее - отдельныйdocker
контейнер) - Хостим бота на VPS, в 🇳🇱 NL - поближе к серверам телеграмм. Ping 3-6 ms
- 🚀 Деплой в прод по кнопке в gitlab 😍
- Поиск бумаг с использованием нечеткой логики. Если не нашли тикер - пытаемся искать по полному названию фирмы. То есть, можно вместо
SBER
, написать "сбер", бот сам найдёт нужный тикер. А так как чукче-продуктологу неймется, этот функционал планируем тоже вынести в отдельное API. Кроме того, у нас есть небольшой список псевдонимов или жаргонных названий фирм. Например, "гамак" - это норникель, "лук" - лукойл, а "яша" попробуйте угадать.
🤝 Как нам поможет клуб
- Фидбэк о проекте
- Фидбэк по видению - мы хотим делать инструменты для удобного и грамотного управления активами. Ребаланс - это первый шажок
- Советы по продвижению. Недавно появился клуб, который собирает людей, знающих толк в инвестициях. Где ещё посоветуете продвигать? Hackernews? Producthunt? Или лучше сарафанное радио?
- Контакты в фондах, куда мы можем прислать презентацию о продукте и формировании экосистемы вокруг него (не ограничиваться же только одним ботом?!)
Да пребудет с нами сложный процент!
UPD:
💗 Как нам уже помог клуб
- @mixbez показал, что в любом продукте можно придумать очень гибкую систему монетизации
- Спасибо @vikeyer и его комментарию. Совет по запуску проектов: запланируйте время на документацию и справку. Если неделю пишите, 6 дней потратьте на документацию. Надо любить пользователя и помогать ему понимать возможности продукта
- Спасибо @MjH-AO за активное использование и подробную обратную связь! вастрик клуб, ты торт!
Предлагаю кросс-постнуть у Комаровского Павла. Вижу что ты там же. Получишь более подробную обратную связь с фин стороны.
Но ещё у меня есть вопрос:
О портфеле вы узнаёте только со слов самого пользователя, вы не видите портфель клиента в его брокерском аккаунте.
Кто мешает человеку, управляющему 2 миллионами долларов, прописать размеры своих позиций в 20 раз меньше?
У всех подобных менеджерилок есть проблема с realtime менеджментом портфеля. После каждой сделки приходится менять текущие веса.
В итоге приходим к старому DDE+QUIK или же самопалу на QLUA.
Вот это странно выглядит:
✅ Alert created.
You will be notified when cost of any position in portfolio changed on ±5.0%
И тут же:
You have no alerts yet
More about alerts.
А есть код бота для так сказать общего пользования ? все хочу что то подобное для крипты just for fun сделать😂
Привет, хочется понять, как полет? Я, честно говоря, не пользуюсь и со сменой работы ребалансировку делал выводами 😅
Я кажется сломал вашего бота :(
Не отвечает на прикрепленный xlsx. Отсюда вопросы, ибо в доке кажется не очень понятно написано:
Не уверен на чем оно еще могло сломаться.
Хочется иметь кнопку "сделал, как сказано" после рекомендации ребалансировки, чтобы бот обновил портфель.
Я понимаю, что видение, что человек зайдет в свою эксельку и поправит, но у меня скажем интерес запустить несколько текстовых виртуальных портфелей на 1 млн и наблюдать за ними внутри бота.
Ещё на дурачка я сделал, что в сумме было 105%. Бот не сделал нормализацию и предложил мне купить акций на 100к, когда у меня всего 1кк.
Возможная фича пополнение баланса: указал сумму и автоматически запустилась ребалансировка, чтобы не проходить, через все шаги.
Фича: сделать алерт ребалансировки по времени, скажем, раз в пол года или год.
Сам себе пишу такой же * функционал как CLI, поэтому просто напишу чего не хватает в вашем боте лично мне.
*
без плагинов, чисто выдавать инфу, не доверяю ботам, предпочитаю руками совершать сделкиМогу только сказать как я решил у себя, если вы придумаете способ лучше, буду только рад его выслушать.
У каждого тикера есть три режима - продай\купи, только докупай, не трогай, это в другом брокере. По сути третий режим нужен только для многоуровнего режима (например, я хочу FXUS + AMVF = 57% портфеля, и внутри бакета хочу 80% FXUS 20% AMVF).
В целом сложно пользоваться такой штукой в отрыве от постоянного поддержания информации о состоянии портфеля. Поэтому балансировка - это просто часть функционала трек тулы портфеля.
Отдельно использовать фичу ребалансировки - нет смысла. Это значит, что я сам помню точную дату, когда мне надо ребалансировку сделать, выгружаю инфу по портфелю, преобразую в формат для бота, отправляю получаю результат, пользуюсь.
Второй сценарий - использовать бота для полноценного трекинга портфеля, но не понятно умеет ли он автоматически учитывать диведенды/купоны/комисии/сплит. Если не умеет, то слишком много заморочек, ради ребалансировки или нотификации о стоимости портефля (которая будет не правильная).
В целом смотрите на проект snowball-income.com - уже все сделано, нормально работает, удобно. Есть еще один схожий проект, но названия не помню, к сожалению. Иногда внутри интерфейса брокеров есть ребаланс тулы, ну и множество сайтов, которые ребалансировку сделаю, только введите инфу о портфеле.
Мне кажется, что проект чуток опоздал. Для больших компаний, такой бот не нужен - там специальный софт комплексный. Для частных инвесторов слишком сложно (возня с отчетами) и это функционал закрыт более user-friendly проектами, чем интерфейс бота. Это скорее для небольшого сегмента гиков, кто хочет в телеграме иметь все под рукой.
А что мешает пользователю при планируемой системе монетизации для уменьшения стоимости забивать в конфиг бота бюджеты с каким-нибудь понижающим коэффициентом?
Например есть миллион, а бота прошу расcчитать на 100000, и плачу вам меньше