[Портфель] Средняя цена покупки акций не по оставшейся балансовой стоимости, а по ценам приобретения

sandyclawz добавил(а) 16 мес. назад
В разработке

В настоящий момент средняя цена акций пересчитывается динамически по всем покупкам/продажам по методу FIFO. Это приводит к тому, что совершая операции по продаже находясь в зеленой зоне я могу понести потери.

Пример. Я купил одну и туже акцию за 10 и 5 долларов. Средняя 7,5. Я вижу в портфеле при текущей цене акции в 8 долларов прибыль в 1 доллар на 2 акции. Продаю 1 акцию. После чего Система показывает, что средняя теперь стала 5 и показывает мой доход в 3 доллара. Если я в голове не держу всю математику, то даже находясь в зеленой зоне и продав за 6 я по факту получу отрицательный доход. Доход (8+6) - Затраты (10+5) = -1 доллар

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

Например:

Купил 3 акции по цене 10 рублей, купил 2 акции по цене 5 рублей; Расчет средней цены покупки (3*10 + 2*5)/5 = 8 рублей.

Продал 3 акции по цене 9 рублей; Средняя цена покупки осталась прежней - 8 рублей. Сейчас в тинькофф происходит мгновенный пересчет средней цены и среднюю цену он мне покажет 5.

Купил 5 акции по цене 20. Расчет средней цены покупки (2*8 + 5*20)/7 = 16,57 рублей.

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

Ответы (19)

фото
8

Я вообще считаю, что надо не складывать все бумаги в кучу, а разделять каждую купленную позицию, как это реализовано в МетаТрейдере, с которым я имел некоторый опыт взаимодействия.

Купил 10 акций по одной цене - одна позиция в портфеле.

Докупил еще 20 акций этой же компании по другой цене - это уже вторая позиция.

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

И для каждой позиции свои профиты, стопы и т.д.

фото
2

это удобно наверно тем, кто торгует только один инструмент, хорошо его изучил и чувствует. А так, это по сути всё равно что в рамках одной акции, купить N-ное кол-во других "под акций". С таким же успехом можно купить N-ное кол-во совсем других эмитентов. И будут вам разные позиции, с разными ценами, и шорты где нужно + нормальная диверсификация.

А складывать лучше в кучу. Если бы вы покупали реальные физические акции (на бумаге) стали бы вы их раскладывать по разным конвертам? Думаю нет. Вы бы подсчитали сколько вы за них в сумме отдали, и предложь вам большую сумму, вы бы эту стопку всю сразу и отдали, или часть стопки. А сколько там каждая из них по отдельности стоила вас бы мало волновало (они ведь все одинаковые).

фото
2

а хотя, чего греха таить, подобную "стратегию" я пробовал в прошлом году. Частями покупал и частями продавал. Вёл таблицу в Exсel, куда и записывал сколько штук и по какой цене покупал и потом как-бы конкретную часть по нужной цене продавал. Совсем не обращая внимания на "среднюю" в терминале (зная как подсчитывается). Долго у меня эта стратегия не прижилась, так как ведёт к игре в усреднение. Части по более высоким ценам могут в итоге бесконтрольно накопиться.

фото
2

"А складывать лучше в кучу. Если бы вы покупали реальные физические акции (на бумаге) стали бы вы их раскладывать по разным конвертам? Думаю нет." - Вы купили 2 квартиры в одном доме. Одну за дорого с шикарнейшим ремонтом, а вторую за бесценок у семьи алкоголиков. Вы были бы готовы продать их обе в одни руки по средней цене квадратного метра в этом доме? )))

фото
2

В пример лучше привести не метатрейдер, а нормальные терминалы (Thinkorswim, TWS, Lightspeed), которые используются ведущими западными брокерами. Алгоритм средней цены там везде одинаков, и рассчитан от цены покупки.

фото
2

"Вы купили 2 квартиры в одном доме." - вы серьёзно видите аналогию? Или для вас акции одного эмитента, кроме цены покупки, ещё чем-то отличатся? Весом, цветом, материалом? Одна акция из золота отлита, а другая из серебра? Купюры в бумажнике, наверно, по степени износа сортируете? и отказываетесь принимать потертую купюру по её номинальной стоимости?))

фото
2

MetaTrader не может ошибаться) Если такая возможность будет, как в МТ, при желании продавать всё в одной куче, можно просто поставить всем одинаковый take profit. Тем более что вряд ли кто-то покупает 1000 акций поштучно и все с разными ценами. Закрыть две, три, четыре позиции по одной акции с разными ценами не так уж и сложно. Но вот иметь возможность ставить разный Stop Loss и Take Profit для разных позиций это очень хорошая идея.

А на "среднем" расчете в том виде, как это реализовано сейчас, тоже попадал пару раз. Однозначно нужен фикс.

фото
4

Жесть какая, надеюсь такого не сделают.

фото
1

Пример некорректный, т.к. акции в отличие от квартир абсолютно одинаковые. Если Вы купили один доллар за 30 рублей, а второй за 70 и положили в разные конверты, вам есть разница какой из них взять с собой в отпуск? :)

фото
1

Пример с квартирами очень корректный.

У квартиры есть главный параметр - это площадь. Ремонты и т.д. - это то, что влияет на ценность, но никак не влияет на площадь. Самую нищую квартиру можно облагородить, но площадь от этого никак не изменится. А можно спалить до голых стен. Так же как и с акциями - в разные периоды, одна и та же компания, может выглядеть по-разному привлекательно: автоматизация производств или кризисы, удачные контракты или санкции - это все влияет в плюс и в минус.

Разница лишь в том, что в квартире Вы живете, Вы ее можете пощупать. А акции, даже бумажные, принципиально внешне не отличаются. Но покупаются они исходя из текущего видения ценности компании. Как ключи от той или иной квартиры.

фото
5

Надеюсь вы шутите.

фото
6

Не понимаю, к чему бред про квартиры в этой ветке. Троллинг такой, что-ли? Или поговорить не с кем? ))

Кому нужно сохранить старый вариант по методу FIFO продолжат пользоваться старым механизмом расчета.

Речь в ветке идет о том, чтобы внедрить НОВУЮ функцию, расчет стоимости по среднему арифметическому. Этот запрос на новую функцию - самый востребованный апдейт, который нужен пользователям, если судить по количеству голосов.

фото
1

Вообще-то в метатрейдер 5 тоже режим неттинга, а не только хеджинг.

фото
фото
3

Вроде все с математикой дружат, но я смотрю, что пишут полный бред! ВСЕ ПОГОЛОВНО (ничего личного - все молодцы)! Я, как со-основатель софтверной компании, продуктом которой пользуются в 120+ странах мира, как продакт-менеджер, как руководитель, как разработчик! Могу сказать - ЧТО ЗА БРЕД???? Ни одного конструктивного собщения! Средняя считается корректно, абсолютно корректно! ОДНАКО! Проблема есть, когда 100500 раз позицию набираешь, то уже через несколько дней без логирования ты не знаешь, на какой цене ты можешь часть прибыли зафиксить, чтобы не прирезать лося.

Что предложить ребятам из Тинькофф?

1. оптимизируйте наконец уже ресурсы! У вас при большой нагрузке API отдает данные о вычислениях о средней примерно через полдня!

2. Предлагаю по позиции выводить реестр по транзакционно в спец-виджете, который может выглядеть примерно так https://prnt.sc/sjtg1v . По сути достаточно 3 столбца - цена, кол-во, сумма сколько потрачено на позицию. Конечно, можно его прокачать, вывести точку безубыточности, а также пусть пользователь выберет тэйк-профит и сколько это позволит заработать, посчитать комиссию и если закрывает часть позиции, то видно, что продаст первые акции по n денег, что невыгодно и тп. Вы там ребятки умные - разберетесь. Нужен всего-лишь виджет!

по другому среднюю не посчитать! только если при установке заявки писать что мол ты друг дорогой угоришь на столько то даллариев!

Всем спасибо все свободны)

фото
2

Ну вы-то точно с математикой не особо дружите, соосновательный вы наш )

В вашей табличке-реестре нет курса руб, а соответственно и смысла вести "потранзакционные" записи нет никакого.

фото
фото
3

Пример с расчетами и формулами, как я считаю для себя.

7c34162e88a8ada4886bf3cd8139ae19

фото
2

Но все равно, нужно как-то учитывать тот факт, что на бирже сначала продаются те акции, которые куплены первые. Люди ведь не понимают, что когда их средняя ниже текущей цены, то они все равно если продадут часть акций, то могут получить минус. Я считаю, что самое главное, чтобы все люди понимали какие сделки в плюс, какие в минус, для этого достаточно добавить к показателю средней цены по балансовой стоимости цену первой купленной. Реализуя среднюю по ценам приобретения будет неясно какой плюс для каждой сделки + придется все переделывать, хотя раз уж вы максимально упрощаете клиентам понимание работы бирж, вроде торгов в режиме реального времени, вместо режима Т+2, то может быть средняя по ценам и будет легче для большинства.

фото
19

Если люди не понимают какие первые акции будут проданы - им нечего делать в инвестициях.)

Другой вопроос, что в виджете Портфель, я бы сделал для каждой позицией детализацию, при клике на некий тогглер у позиции если она набрана из нескольких сделок, можно раскрыть "реестр" депозитария по этой позиции, то есть из каких сделок она состоит. Так как все эти данные в стэйте (react же)) приложения уже есть, то можно их легко вывести.

Прямо в виджете "портфель" это можно рееализовать примерно так

/6ad0de68ed63a08e1a2e231d84cc60f8

(данные забиты от "балды", так что, кто будет расчеты проверять - можете не трудиться)


Вообще, с вашими дизайнерами и ресурсами можно реально быстро и понятно с точки зрения ux это накидать!

Это уже даст представление, при продаже какого-количества акций, какой фин результат будет.


Ну другой вариант, сделать виджет "позиция", в котором видна табличка, где твои сделки, точка безубытка с учетом комиссии, а также, где можно вбить желаемую цену продажи и кол-во акций, чтобы было видно сколько от каждой позиции будет продано и в каком порядке + сколько в + или - . Легко моделируется в эксельке. Но и первый вариант будет хорош!

фото
2

Было бы здорово, если бы можно было смотреть среднюю не только по FIFO как сейчас (это нужно для расчета налогов), но и по средней как описано тут, а ещё лучше по методу LIFO.

Понятно что такой инструмент введёт в заблуждение многих пользователей, поэтому его нужно как то скрыть в интерфейсе или обозначить что расчет налогов ведётся по методу FIFO, или же дать доступ только квалам.

Метод LIFO даст объективную работу с инструментом, когда практикуется частичный выход и последующий возврат в позицию.


Ну а предложенный вариант по средней лично я не знаю где бы мог использовать

фото
1

В принципе все вопросы/предложения думаю отпадут, если поменять метод по покупкам/продажам на LIFO. Тогда средняя будет всегда актуальной! Вопрос только в законности, тут тонкостей не знаю...

FIFO (англ. First In, First Out – «Первым пришёл — первым ушёл»)

LIFO (англ . Last In, First Out – «последним пришёл — первым ушёл»)

фото
3

Лучше добавить расшифровку к комиссиям и средней цене

То есть при покупке цена к примеру 100

усреднение 80 - делает к примеру 90

Не хватает полной информации каким образом сколько акций и по какой цене были куплены, что составляет цену усреднения.

на мой взгляд не хватает какой то прозрачности.

А также прозрачно показывать процент комиссии при покупке (а не мелким текстом: "цена комиссии будет рассчитана индивидуально"). Самое то сделать расчет комиссии в окне отложенных заявок или заявок.

А в отдельном окне или Popup меню сделать (при наведении мышью на знак вопроса) появляется полное описание усреднения цены с покупками, продажами по данному инструменту в рамках данной покупки

фото
4

Полностью согласен насчет прозрачности. Почему я могу открыть свой портфель и посмотреть какие акции в какие даты были куплены и по какой стоимости, почему мне для этого нужно листать ленту событий? А если сделок в день 100+ как быть? Также нет нормальной системы с уплатой налогов, я задолбался при каждом выводе отправлять по тысяче на оплату налога. И неизвестно, производится ли потом перерасчет, потому как это обозначено одной строчкой в ленте. Почему все такое закрытое? Видимо кое-кто кое-что скрывает.

фото
фото
7

Действительно, тема средней крайне важна и просьба поставить по ней максимально возможный приоритет.

При этом, судя по теме пользователи видят расчёт средней по разному, но все сходятся во мнении, что текущий расчёт (по ФИФО) не подходит. Вероятно, текущая логика важна для расчёта налога, но для расчёта средней относительно которой трейдер принимает решения, такой подход в корне не подходит.


Моё видение таково:

1. При открытии лонга

Средняя_0 = Сумма покупки / кол-во бумаг

2. При увеличении лонга

Средняя_1 = (Средняя_0 * текущее кол-во бумаг + сумма покупки новых бумаг) / Общее кол-во бумаг
Ну, то есть надо просто взять ВСЕ расходы на покупки бумаг и разделить их на полное количество бумаг в портфеле.


3. При частичном сокращении позиции

Средняя_2 = Средняя_1
То есть, среднюю нужно просто НЕ МЕНЯТЬ. Это только выглядит "инновационно" :) На самом деле это супер-логично. При частичном закрытии вы фиксируете по части бумаг убыток или прибыль, но средняя цена покупки это этого ну никак не меняется.


4. Полное закрытие позиции

Если в какой-то момент количество бумаг становится равным нулю, то начинаем всё заново с первого пункта.

--

Если требуется (не понятен алгоритм или расчёт), могу более математически всё расписать и добавить примеров. Если есть вопросы, готов ответить в любом формате.

Вопрос средней супер важный и если задержка с реализацией связана с тем, что Вы (разработчики) не можете определиться какой из предложенных пользователями вариантов расчёта реализовывать, то может в каком-то формате это обсудить? Выложить варианты формул на голосование или ещё как-то. Я со своей стороны готов активно участвовать в этом словом и делом, так как страдаю от текущего расчёта средней как и тысячи других клиентов :)


Спасибо!

фото
6

Предлагаю каждую открытую позицию учитывать отдельно. Купил 100 акций по 10 рублей - появилась строчка, купил еще 100 акций по 7 рублей - еще строчка. Когда закрыл позицию - строчка ушла.

фото
4

Очень инновационное предложение :)

Так только на Форексе (на "кухнях") работает. На фондовом рынке такого ни у одного брокера не встречал.

фото
фото
12

Когда уже вы сделаете эту простейшую задачу??

Мне надоело видеть неправильную стоимость бумаг в портфеле. Мне надоело видеть неправильную сумму прибыли по портфелю!!!

Почему вы не можете никак понять что это, бл@ть, важно???

И самое главное это таск на 1 рабочий день на весь круг с ревью, тестировнаием и деплоем. В чем у вас проблема?

фото
4

@Vlad, приходите к нам работать, пожалуйста, если для вас полный цикл разработки этой фичи занимает 1 день :)

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

фото
1

"Средняя цена" вообще абстрактное определение. Если вы имеете ввиду "средневзвешенная цена приобретения", то она по определению считается по ценам приобретения.

фото
фото
4

@t.gladkikh когда будет закрыт этот таск?

фото
7

Не нашел отвечали ли мы уже в этой теме. Возможно, это было в теме со фьючерсами.

Обозначим сразу, что это не перекладывание ответственности на коллег с бэкенда или что бы то ни было еще. Мы просто описываем ситуацию как она есть.

Начнем с того, что понимаем ваше негодование. Теперь поясняем почему сложилось так: в 2020 году у нас случился кратный рост клиентов, который обнажил все недостатки архитектуры того проекта, который отвечает за расчет средней цены. А так же за "стабильность" расчета этой средней.

Сейчас доработки на этом проекте заморожены из-за решения одной проблемы: https://invest-terminal.useresponse.com/topic/терминал-проблема-с-обновлением-данных.

Команду под конец года с большими трудностями удалось увеличить. Теперь в ней будут люди, которые отвечают за стабильность, и другие люди, которые будут отвечать за фичи.

Отвечая на ваш вопрос: мы надеемся, что реализуем новый расчет средней в феврале.

фото
3

Респект за отрытость.

фото
4

за ответ спасибо.

ну понятно, что эту задачу не на фронте решать. чисто бэкэндовая задача

```все недостатки архитектуры того проекта, который отвечает за расчет средней цены. А так же за "стабильность" расчета этой средней``` - ох уж вы и завернули. целый rocket science из простого [получить закупочные шт и цены из БД с момента последнего обнуления позиции и потом посчитать арифметическое среднее] сделали.

фото
2

Ага, прям как-будто методом Рунге-Кутта считают эту среднюю.

фото
1

Еще данные для расчета нужно получить, а это может глючить из-за большого потока

фото
1

Alex, спасибо. Как раз сел писать ответ на комментария Владислава, но вы четко и кратко изложили содержание моего потенциального ответа.

фото
1

t.gladkikh напишите подробно, ели можно.

фото
1

Владислав, при всем уважении, получить с open api все операции и посчитать среднюю по одному клиенту на node - простая задача. Но делать расчет средней в реалтайме по большому количеству клиентов и при высокой торговой активности - задача совершенно другого рода.

фото
5

@t.gladkikh кто просит вас делать расчет в реалтайме? закинули задачу в брокер очередей - пусть обновляет раз в 10 минут хотя бы. на фронте в это время отображаете цену "со звездочкой" (мол она пересчитывается - ждите). да пусть это хоть раз в час происходит. когда пересчитает закинет по сокету. не рассказывайте сказки как это сложно... я бы мог понять если б данному таску было 2 дня от создания. но 8 месяцев прошло! восемь, Карл!

фото
1

Влад, при всем уважении, мы больше не будем отвечать на ваши сообщения в этой теме, поскольку уже сказали все, что можем сказать.

фото
2

не отвечайте. просто сделайте!

фото
1

Vlad Goltser Написали же, что не будут делать, пока вышеуказанную задачу не сделают.

фото
1

@t.gladkikh а что с командой разработки? есть ссылка на вакансию?

фото
2

Не хочу наседать, но февраль уж на дворе ;-) Сроки в силе?

фото
1

Скорее всего съедут на март или даже апрель.

фото
фото
14

Задача действительно одна из важнейших с точки зрения клиента. Как правильно заметили выше, пользоваться терминалом и при этом параллельно вбивать цены покупки и количество бумаг в эксель со своими формулами это совершенно неудобно и странно.

Текущий расчёт "средней" мне лично не очевидно для каких задач вообще нужен. Единственное очевидное применение это использования для расчёта налогов, но к торговле это отношения не имеет. А терминал вроде как предназначен для торговли.

Надеюсь на скорейшее изменение расчёта средней по логике описанной в тикете или, как минимум, повышение приоритета этой задачи до максимального. Спасибо!

фото
6

На годовщину тикета дождемся реализации, Тимофей??

фото
1

Не факт, Владислав.

фото
3

А какие ориентиры по срокам? Это самая востребованная фича (ну или одна из) судя по лайкам и комментариям

фото
1

Роман, мы больше не будем называть сроки.

фото
2

Ну хорошо, а вообще реализуете, или теперь "нет в ближайших планах"?

фото
1

Реализуем. Просто сроки зависят не от команды терминала.

фото
1

Ну это понятно, что считает бекенд, а терминал или мобильное приложение просто рисует цифру. Но тогда у вас есть аналогичная платформа с фидбеками на весь сервис ТИ? Я нашёл только этот на терминал, и на пульс.

фото
1

А толку везде писать одно и то же, быстрее то не сделают от этого...


Все знают что все (кроме меня) хотят среднюю не по FIFO и я так понимаю в силу возможностей работают над этим (и будут ждать пока все отделы доделают и оттестируют, не только бэкэнд, но и например юристы, моб. приложение, тестировщики и др. отделы).

И я так понимаю субсчета и средняя в приоритете. Но нельзя на финансовой платформе выкатывать сырое неоттестированное хорошо решение. Только с декабря работать все начало более менее стабильно. В идеале вообще сначала запустить на узком круге людей, потом на широком.


А сроки всегда назывались текущий момент + 2 месяца, толку только от этого)

фото
фото
5

Как же меня это достало...

Очевидно, что Доход не 22,52% и за день доход совсем не такой. А ведь эта цифра идет в суммирование по дню и в суммирование "За всё время". И это только одна позиция. ДОКОЛЕ???


50fc090255fa611528a65974ced056e7


Вся аналитика портфеля - собачьи экскременты

фото
4

% за день это просто дневное изменение по инструменту.

Сумма за день простое умножение этого изменения на количество акций в портфеле.

Доход 22,52% можете сами проверить на калькуляторе.

За всё время это простое суммирование по колонке Доход

Тот ещё ребус, конечно, но когда знаешь чего они имеют в виду, уже нет раздражения.

Поправить немного название колонок и уже было бы легче новым пользователям. Но переключатель FIFO или Средневзвешенное очень хотелось бы.

фото
3

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


Но названия колонок вызывают недоумение, вместо "Доход" логичнее использовать чтото типа "Изм. балансовой стоимости.

Под Доходом логичнее понимать завершенные по FIFO сделки, а этого функционала в принципе нет... Хотя многие бы вопросы отпали сразу..

фото
фото
2

а нельзя в самой заявке на покупку/продажу писать действительную сумму плюса или минуса?

Это ведь можно считать и на клиенте, если вы конечно передаете не только среднее по позиции на него

фото
4

Потенциально это, конечно, возможно. Причем можно сделать как то, чтоб доходность считалась по FIFO, LIFO, средневзвесу или вообще выбрать вручную какую из покупок/продаж в позиции фиксируете.

фото
1

Это было бы оч круто!

Мне было бы достаточно просто знать сумму плюса или минуса так как ее считаете для уплаты налога и насколько я понимаю это fifo.

А так как работает сейчас вынуждает полностью закрывать позиции, а когда их много уже не помнишь их цен покупок

фото
фото
2

Добрый день. Возможно ли добавить дополнительный параметр в API для указания, с какой стороны брать инструмент для продажи? ( Например, для обратной совместимости по умолчанию FIFO, но если передать LIFO, инструмент будет браться для продажи с конца )

фото
2

Здравствуйте. Подписывайтесь на эту тему, пожалуйста, https://invest-terminal.useresponse.com/topic/1585-виджетмодалка-fifo-сортировка-очереди-продажи

фото
фото
5

Эта проблема действительно очень актуальна, на ровном месте продаешь в убыток, неужели так сложно переписать формулу расчета средней для клиента?

фото
1

А в каком варианте ждать реализацию новой версии? Будет ли возможность выбора отображения средневзвешенной?

Мое предложение: при продаже части позиции на выбор изымать из расчета самые дешевые или самые дорогие сделки дополнительно к опциям LIFO и FIFO.

фото
1

> в июле

которого года?

фото
фото
6

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

Зачем было создавать тогда этот сайт, собирать предложения, если они не реализуются, а самый рейтинговый запрос пользователей, похоже, игнорится принципиально.

Уверен, что в этом есть умысел. Пересчет по средней покажет убытки операций, тогда как с показателями ФИФО в среднем пользователь будет ошибаться чаще, что принесет брокеру доп профит.

Комментировать
 
Прикрепить файлы