Идея была простая и на вид очевидная: на маркетплейсах 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 — 54 447 лотов, 1.8 млн изменений цен, 4420 подтверждённых сделок с ценами, в CSV с описанием полей. Лицензия CC BY 4.0.
-
Код и расчёты: https://github.com/ufosog/gift-sniper — сбор с трёх площадок, каскад фильтров, межбиржевая сверка, бумажный журнал, сервер с самодиагностикой, 634 теста. Все расчёты из этой статьи лежат в папке
diag/и воспроизводятся одной командой на опубликованных данных. Лицензия MIT.
Если будете строить что-то в этой нише — начните с проверки ликвидности. Может сэкономить вам две недели.
Автор: ufosog
