Тип бота
Одно оповещение на пересечении, а не сорок на колебаниях
Telegram-бот ценовых оповещений следит за порогами, которые задал пользователь, и пишет ему, когда порог пересечён, с гистерезисом — поэтому колеблющаяся цена не выдаёт серию сообщений подряд. Сквозная задержка измеряется секундами, а не миллисекундами. Он не годится там, где эта разница решает исход сделки.
Боты ценовых оповещений: цена, сроки и ограничения
- Фиксированная цена
- $5,000 USD
- Срок
- 21 календарный день с момента старта
- Сквозная задержка
- Секунды от движения цены до доставленного сообщения
- Потолок источника
- API цен обычно ограничены несколькими запросами в секунду на ключ
- Потолок рассылки
- ~30 сообщений/сек на бота
- Заблокировавшие бота
- Отправка падает с явной ошибкой, подписчик снимается
As of 2025-10-01, Telegram Bot API 13.4
Какую задачу это решает
Ценовые оповещения — самая простая сборка в крипто-половине этого каталога и та, которую чаще всего делают плохо, причём дефект не виден, пока бот не окажется в проде. Наивная реализация сравнивает текущую цену с порогом и срабатывает на пересечении. На живом рынке цена пересекает уровень не один раз — она несколько минут болтается вокруг него, пользователь получает тридцать сообщений за четыре минуты и выключает бота навсегда.
Лечится это гистерезисом: сработавшее оповещение не взводится заново, пока цена не отойдёт от порога на заданное расстояние. Кода там немного, а разница — между инструментом, который оставляют, и тем, который отключают в первый же волатильный день. То же касается срока жизни оповещения, паузы после срабатывания и потолка на число оповещений, которые один пользователь может получить за час.
Второе, о чём стоит говорить прямо, — задержка. Опрос источника цен, проверка порогов и отправка через Telegram в сумме дают секунды. Тому, кому важно узнать, что эфир прошёл уровень, этого хватает с запасом. Тому, чья стратегия зависит от реакции быстрее секунды, Telegram-бот не подходит, и никакая инженерия этого не изменит: нижнюю границу задаёт собственный темп отправки платформы.
Как идёт разработка
Пользователь задаёт порог одним сообщением
Актив, направление, уровень и повторяется ли оповещение. Всё, что для такой простой вещи требует больше одного сообщения, теряет пользователя, а здесь интерфейс и есть бóльшая часть продукта.
commandsЦены опрашиваются централизованно, а не отдельно под каждого пользователя
Один опрос по активу обслуживает все оповещения на нём. Опрос на каждое оповещение масштабируется по числу пользователей, а не активов, и упрётся в rate limit поставщика данных почти сразу.
webhookПороги проверяются с гистерезисом
Оповещение срабатывает на пересечении и снимается со взвода, пока цена не отойдёт назад на заданное расстояние. Одно это правило отделяет инструмент, которым продолжают пользоваться, от того, который заглушают.
webhookДоставка ограничена потолком на пользователя в час
Волатильный день не должен обернуться сотней сообщений. За пределами потолка оповещения не выбрасываются, а собираются в одну сводку — так ничего не теряется и никого не заливает.
broadcastРазовые оповещения снимаются сами
Большинство оповещений — ответ на один вопрос. По умолчанию срабатывание одноразовое, а повтор включается явно: так устроено то, чего люди на самом деле хотят, и список оповещений остаётся коротким.
inline-keyboardОтказ источника цен виден, а не проглатывается молча
Если источник перестал отвечать, пользователям сообщают, что оповещения приостановлены. Инструмент мониторинга, который ломается тихо, хуже его отсутствия: человек продолжает считать, что он под присмотром.
broadcast
Что Telegram разрешает, а что нет
Сквозная задержка от движения цены до доставленного сообщения измеряется секундами.
Свой вклад дают интервал опроса, проверка порогов и темп отправки Telegram. Пользователю называют цифру, а не говорят про реальное время, потому что тому, кто на этой разнице торгует, она важна.
Бот отправляет порядка 30 сообщений в секунду суммарно.
Резкое движение, задевшее десять тысяч оповещений, доставляется целиком за минуты. Оповещения приоритизируются по близости к порогу, чтобы самые срочные ушли первыми, а про хвост говорят честно, а не прячут его.
API источников цен ограничивают частоту на ключ, обычно несколькими запросами в секунду.
Опрос централизован по активу и кешируется. Узкое место почти всегда поставщик данных, а не Telegram, и архитектура строится от этого, а не наоборот.
Бот не может написать пользователю, который его заблокировал: отправка падает с явной ошибкой.
У заблокировавших оповещения приостанавливаются, а не повторяются бесконечно, иначе они съедают бюджет отправки, который нужен активным пользователям.
Telegram не даёт подтверждения прочтения — только подтверждение отправки.
Можно показать, что оповещение доставлено, и нельзя — что его увидели. Формулировки говорят о доставке и не подразумевают, что человек что-то предпринял.
Когда это не нужно строить
- Ваши пользователи торгуют на реакции быстрее секунды. Один только темп отправки Telegram задаёт нижнюю границу задержки, которую не убирает никакая реализация.
- Нужны оповещения по сотням экзотических пар. Покрытие и стоимость у поставщика данных становятся всем проектом, а бот оказывается лёгкой его частью.
- У вас уже есть торговая платформа со встроенными оповещениями. Второй источник оповещений с другими порогами даёт противоречащие друг другу уведомления.
- Вы хотите продавать это как отдельный платный продукт, и других причин заходить в ваш бот у людей нет. Ценовые оповещения широко доступны бесплатно, и лучше всего эта сборка работает как довесок к чему-то ещё.
На чём это работает
| Компонент | Версия | Зачем |
|---|---|---|
| grammY | 1.45 | Фреймворк бота и интерфейс управления оповещениями. |
| Cloudflare Workers | current | Среда исполнения: опрос и проверка порогов по расписанию cron. |
| Cloudflare D1 | current | Оповещения, состояние взвода, паузы и история доставки. |
| Cloudflare KV | current | Кеш последних цен, общий для всех запусков проверки. |
| TypeScript | 5.9 | Строгий режим, цены в целых минимальных единицах, а не в числах с плавающей точкой. |
О чём спрашивают перед стартом
Почему гистерезис настолько важен?
Потому что цена не пересекает уровень один раз. Она колеблется вокруг него, и наивное сравнение срабатывает на каждом пересечении: тридцать сообщений за четыре минуты, а дальше отключённые уведомления. Гистерезис — это несколько строк кода, и именно в них вся разница между удержанным пользователем и потерянным.
Какая у оповещения задержка на самом деле?
Секунды: интервал опроса плюс проверка порогов плюс темп отправки Telegram. Мы публикуем цифру, а не называем это реальным временем, потому что человек, торгующий на этой разнице, вправе знать её до того, как начнёт полагаться на бота.
Что происходит в день, когда двигается всё сразу?
Оповещения приоритизируются по тому, насколько близко они к своему порогу, а у каждого пользователя есть часовой потолок: сверх него оповещения собираются в сводку, а не выбрасываются. Ничего не теряется, и никто не получает двести сообщений.
Какие источники цен он может использовать?
Любого поставщика, чьи ограничения частоты укладываются в модель централизованного опроса. Выбор обычно решают покрытие нужных именно вам пар и стоимость — и то и другое здесь весит больше, чем сама разработка.
Оповещения прекращаются, если источник цен лёг?
Они приостанавливаются, и пользователям об этом сообщают. Инструмент мониторинга, который отказывает молча, хуже, чем его отсутствие: человек продолжает считать себя под присмотром, когда это уже не так.
Почему эта сборка дешевле остальных крипто-сборок?
Потому что здесь ничего не хранится, никакие средства не двигаются и нет регуляторной поверхности. Почти вся стоимость кошелька и запуска токена — это обработка сбоев вокруг денег, и ничего из этого сюда не относится.