Разработка
Dan Kamilov

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

Продолжаем создавать полезных ботов в Telegram. Сегодня расскажем об алгоритме создания бота для отслеживания цен на криптовалюты.

Наша статья

Telegram-бот для получения адреса по локации или координатам (Python)

Привет! Представь ситуацию, когда тебе скинули координаты или локацию, но ты хочешь срочно узнать адрес этого места.

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

Теперь же мы задались целью сделать максимально простого бота для крипто-энтузиастов (https://t. me/StareAtCryptoBot).

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

Вернёмся к боту. На данный момент существует множество аналитических платформ с довольно внушительным функционалом (tradingview, coinmarketcap, coingecko, dropstab и т. д.). Бот, которого мы будем создавать не ставит себе цель конкурировать с ними, но добавляет некоторые удобства.

Поехали!

Цель: создать бота, который получает от пользователя список интересующих его монет и оповещает при изменении цены этих монет на 1% или более.

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

Задача 1: нам нужно откуда-то узнавать постоянно изменяющиеся цены на криптовалюты.

Решение: Используем google и находим несколько поставщиков API (По простому, это список ссылок, куда ты можешь отправить запрос и получить интересующий тебя ответ. В нашем случае это цены на разные монеты). После определения лучшего поставщика — задача решена. У нас есть API, которое каждую секунду/минуту/час присылает нам цены на Топ 3000 монеток.

Например данные от coingecko:

Задача 2: нужно понимать какие криптовалюты интересуют каждого отдельного пользователя.

Решение: Используем одну из возможных баз данных, для хранения информации. В нашем случае PostgreSQL. Осталось определить, что нам нужно хранить.

Храним: Telegram id юзера, список монет (которые он отправит боту) и в отдельной табличке цены на 3000 монет, которые обновляются каждую секунду/минуту/час.

Задача 3: нужно понять как будет работать бот и соединить все задачи выше вместе.

Решение:

На данный момент существует множество разнообразных фреймворков для написания бота (python-telegram-bot, aiogram и т. д.) .

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

Продумываем алгоритм работы бота:

1) Каждую минуту обновляем цены на монеты, используя API из задачи 1.

2) Однозначно нужно, чтобы бот поддерживал разные языки. Ага, значит при первом входе нужно спросить у юзера предпочтительный язык.

3) Должна быть одна кнопка действия. Назовём её «Настроить отслеживание».

4) У пользователя должна быть возможность как-то сообщить боту список интересующих его монет. Значит настраиваем в боте прием тикеров (символов) монет и предлагаем «Подписаться» на нужные.

5) Поскольку мы видим цены на монеты, то бонусом добавляем отслеживание, так называемого, пампа монет. То есть если на какие-то из топ 3000 монет цена за 5 минут изменилась больше, чем на 15%, то тоже сообщаем об этом пользователям.

Соединяем это всё кодом при помощи одного из фреймворков из задачи 3.

Готово @StareAtCryptoBot

После отправки данного бота в несколько крипто-сообществ мы сразу увидели отклик людей и за счёт «сарафанного радио» набрали более 1000 пользователей за сутки.

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

Спасибо за внимание!

0
9 комментариев
Написать комментарий...
Станислов

Спасибо что вы открываете двери в крипту через телеграм !

Ответить
Развернуть ветку
Даниил Гусаров

Откуда в итоге берете данные курсов?

Ответить
Развернуть ветку
Dan Kamilov
Автор

С разных платформ. Подобные API доступны и у CoinMarketCap и у CoinGecko и у многих других. Оптимизация подгрузки данных и их обработка это уже тема другой статьи ;)

Ответить
Развернуть ветку
Андрей Матигин

Напишите эту статью. Очень интересно

Ответить
Развернуть ветку
Даниил Гусаров

На платной основе получаете?

Ответить
Развернуть ветку
Dan Kamilov
Автор

На данный момент бесплатно. Если пользователей будет слишком много для бесплатной основы, то введем монетизацию для оплаты услуг.

Ответить
Развернуть ветку
СлавалС

а изменение на 1% это за какое время? И как планируете монетизировать?
А так оч круто, молодцы

Ответить
Развернуть ветку
Dan Kamilov
Автор

Монетизировать не планируем сейчас. 1% за любое время от последней фиксации. Например вы следите за монеткой BTC. Текущая цена 40000. Как только она станет 40400 или 39600, бот вам сообщит. И далее уже будет снова ждать изменения на 1% или более. Замер происходит раз в 60 секунд.

Это очень полезно для пассивного наблюдения за монетой. Например, если вы сидите и работаете, а бот уже выдал вам +2%, +3%, +2% и так несколько раз, то возможно стоит зайти на биржу и уже зафиксировать профит )

Ответить
Развернуть ветку
Владислав Кудяков

Жаль, что только топ-3000

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Читать все 9 комментариев
null