- PVSM.RU - https://www.pvsm.ru -
Идея была простая и на вид очевидная: на маркетплейсах Telegram-подарков постоянно появляются лоты дешевле рыночной цены. Купил дешевле, выставил по рынку, забрал разницу. Ботов там, в отличие от криптобирж, почти нет.
Я написал систему, которая две недели непрерывно собирала данные с трёх площадок — Portals, Tonnel и MRKT, — а потом честно проверила эту идею.
Ответ: заработать нельзя. Не «сложно», не «нужно быстрее» — нельзя в принципе, и я могу показать это цифрами. Ниже — как измерял, что получилось и где были ловушки, в которые я сам чуть не попал.
Все данные и код открыты, ссылки в конце.
|
|
Значение |
|---|---|
|
Период |
5–23 сентября 2026 |
|
Площадки |
Portals, Tonnel, MRKT |
|
Лотов |
54 447 |
|
Изменений цен |
1 811 271 |
|
Подтверждённых сделок с ценой |
4 420 |
|
Коллекций / уникальных пар «модель + фон» |
131 / 39 707 |
Последняя строка в таблице выше — ключевая. Площадки не отдают историю сделок: лот просто исчезает из списка, и почему — неизвестно. Купили? Продавец снял? Владелец забрал себе? Только у MRKT нашёлся поток событий, где продажа приходит явно и с ценой. Эти 4420 записей и стали фундаментом всей проверки: только они говорят, сколько покупатели платят, а не сколько продавцы просят.
Медианная цена сделки — 27.5 TON, четверти 18.7 и 48.0, максимум 1285 TON.
Обычная логика сигнала: берём минимальную цену такой же пары «модель + фон» на площадке (флор), сравниваем с ценой конкретного лота, и если лот дешевле — это выгодное предложение.
Проверяю на данных: для лотов, которые система сочла выгодными, подтверждённая сделка по такой же паре случалась в течение суток лишь в 5% случаев.
Флор — это цена самого дешёвого выставленного лота. Если по ней никто не покупает, она не значит ничего. Можно бесконечно находить товар «дешевле флора» и бесконечно не находить покупателя.
Первая версия моего же расчёта показала по MRKT красивые +15% медианы. Потом я добавил один вопрос: а была ли по этой паре хоть одна настоящая сделка, пока мы «держали» лот? Оказалось — у 8 случаев из 158. Красивая цифра относилась к цене, по которой мы могли бы выставить лот. Покупателя в ней не было.
Следующая мысль: сравнивать не с флором, а с ценами реальных недавних сделок. Покупать то, что дешевле, чем реально покупали.
Проверил на 852 334 случаях — каждое появление лота и каждое изменение цены. Результат: правило «дешевле недавних сделок на 10%» дало 60 сигналов, продажа потом случилась у 5 из них, прибыльных — ноль, медиана −20%.
Объяснение простое: цена ниже недавних продаж — это не скидка, а падающий рынок. Следующие сделки проходят ещё ниже.
Отдельная деталь, которая меня отрезвила. В одной из версий расчёта я брал ценой выхода цену, по которой сам этот лот позже продался. Медиана вышла ровно −2.00% на 19 сделках — в точности комиссия площадки. То есть лоты уходят по своей же цене, по той самой, по которой мы бы их купили. Никакой скидки относительно рынка в них не было.
Чтобы закрыть вопрос окончательно, я смоделировал условия лучше, чем бывает в жизни:
покупка ровно по цене состоявшейся сделки;
продажа ровно в следующую состоявшуюся сделку по такому же товару;
срок ожидания не ограничен;
конкурентов нет, из расходов только комиссия продавца.
Так не бывает. Это потолок возможного. Вот он:
|
Ценовой сегмент |
Сделок |
В плюсе |
Медиана |
Итог |
|---|---|---|---|---|
|
до 30 TON |
293 |
8% |
−2.0% |
−129 TON |
|
30–100 TON |
269 |
12% |
−2.0% |
−222 TON |
|
100–300 TON |
56 |
12% |
−1.9% |
−156 TON |
|
300+ TON |
21 |
9% |
−2.2% |
−175 TON |
|
Всего |
639 |
10% |
−2.0% |
−681 TON |
Медиана ровно −2% — это комиссия. Цена товара между двумя последовательными сделками не меняется. Покупаешь по рынку, продаёшь по рынку, платишь комиссию, получаешь минус. Дорогой сегмент ведёт себя так же. Длинный горизонт не помогает: повторная сделка приходит в среднем через 4–17 часов, и цена та же.
3134 подтверждённые сделки разошлись по 2495 разным товарам. Медиана — одна сделка на товар за девять дней. Максимум — шесть.
Это не рынок в биржевом смысле, а доска объявлений. Купить можно за минуту, продать — за недели. Для перепродажи нужен поток покупателей, а его нет.
Любопытный побочный результат: конкурентов там тоже почти нет. Из десяти проверенных лотов за 45 секунд после сигнала увели только один. Ботов нет именно потому, что зарабатывать нечего.
Параллельно система вела журнал сделок с виртуальным банком 300 TON — по три модели поведения одновременно, с настоящими комиссиями, вероятностью продажи и сливом непроданного.
|
Модель |
Старт |
Стало |
Итог |
|---|---|---|---|
|
продажа через 24 ч |
300 TON |
268.8 |
−31 TON |
|
продажа через 12 ч |
300 TON |
210.0 |
−90 TON |
|
продажа через 48 ч |
300 TON |
323.7 |
+24 TON |
Единственный плюс держится на одной удачной сделке из десяти. Я проверил её вручную: лот куплен за 46 TON при «флоре» 139. Флор был настоящий, но по другому фону — то есть прибыль опиралась на допущение, что фон не влияет на цену. Это допущение данные не подтверждают.
Считать нужно от покупателя, а не от объявления. Любая метрика, построенная на ценах предложений, показывает фантазии продавцов. Единственная твёрдая точка — цена, по которой кто-то реально заплатил.
Ликвидность решает раньше, чем спред. Я потратил уйму времени на точность расчёта прибыли и слишком поздно задал главный вопрос: а есть ли вообще кому продавать. Проверять ликвидность нужно первым делом.
Красивая цифра — повод искать ошибку. Каждый раз, когда расчёт показывал хороший плюс, внутри оказывалось невысказанное допущение: «мы точно продадим», «фон не важен», «конкурентов нет».
Отрицательный результат стоит дёшево, если получен быстро. Итог: две недели и 300 рублей за сервер — вместо вложенных в закупку денег.
Всё открыто:
Данные: https://www.kaggle.com/datasets/ufosog/telegram-gifts-prices-and-confirmed-sales [1] — 54 447 лотов, 1.8 млн изменений цен, 4420 подтверждённых сделок с ценами, в CSV с описанием полей. Лицензия CC BY 4.0.
Код и расчёты: https://github.com/ufosog/gift-sniper [2] — сбор с трёх площадок, каскад фильтров, межбиржевая сверка, бумажный журнал, сервер с самодиагностикой, 634 теста. Все расчёты из этой статьи лежат в папке diag/ и воспроизводятся одной командой на опубликованных данных. Лицензия MIT.
Если будете строить что-то в этой нише — начните с проверки ликвидности. Может сэкономить вам две недели.
Автор: ufosog
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/458766
Ссылки в тексте:
[1] https://www.kaggle.com/datasets/ufosog/telegram-gifts-prices-and-confirmed-sales: https://www.kaggle.com/datasets/ufosog/telegram-gifts-prices-and-confirmed-sales
[2] https://github.com/ufosog/gift-sniper: https://github.com/ufosog/gift-sniper
[3] Источник: https://habr.com/ru/articles/1086736/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1086736
Нажмите здесь для печати.