Я давно занимаюсь алготрейдингом, периодически также работают боты для монет с низкой капитализацией. На многих биржах остаются монеты маленькой и средней капитализации — периодически их пампят. В хороший день 10-15 монет могут дать рост больше чем на 50%.
Первоначально бот не только уведомлял, но и открывал сделки.
Однако для безопасной публикации я убрал торговую логику, так как бот пока что находится в стадии тестирования. Можно, при желании, добавить филтьтры по объёму, росту на 24часа и прочее.
Я взял за основную цифру — 5% роста. Также при желании можно добавить и шорт-позиции, но пока что, в стадии теста, мне это неинтересно.
В результате получился лёгкий и автономный инструмент, который:
отслеживает все фьючерсные пары на BingX;
фильтрует токены по рыночной капитализации (через CoinMarketCap API);
каждые 5 минут проверяет изменение цены;
при росте выше заданного порога — шлёт уведомление в Telegram.
Весь код можно разбить на 4 основных блока:
Инициализация и настройки — подключение API, ключей, параметров.
Получение списка токенов и фильтрация по капитализации.
Мониторинг изменения цен.
Telegram-уведомления о пампах.
Схематично выглядит так:
CoinMarketCap → список low-cap токенов
↓
BingX API → цены фьючерсов (mark price)
↓
Сравнение цен ( каждые 5 мин)
↓
Telegram Bot → уведомления
Для начала подключим нужные библиотеки и зададим ключи.
<code>import requests import json import time from decimal import Decimal import telebot CMC_API_KEY = "ВАШ_CMC_API_KEY" BINGX_BASE_URL = "https://open-api.bingx.com" TELEGRAM_TOKEN = "ВАШ_TELEGRAM_TOKEN" USER_ID = 123456789 # ваш ID в Telegram </code>
Комментарии:
CMC_API_KEY — ключ CoinMarketCap, нужен для получения данных о капитализации.
TELEGRAM_TOKEN — токен Telegram-бота (его можно получить у @BotFather).
USER_ID — ваш Telegram ID для личных уведомлений (узнать можно через бота @userinfobot).
Чтобы не ловить лимиты CMC, кэшируем market cap токенов локально.
<code>def get_cmc_lowcap_symbols(max_cap=100_000_000):
url = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest"
headers = {"X-CMC_PRO_API_KEY": CMC_API_KEY}
params = {"limit": 5000, "convert": "USD"}
r = requests.get(url, headers=headers, params=params)
data = r.json()
lowcap = []
for coin in data["data"]:
if coin["quote"]["USD"]["market_cap"] and coin["quote"]["USD"]["market_cap"] < max_cap:
lowcap.append(coin["symbol"])
with open("cmc_cache.json", "w") as f:
json.dump(lowcap, f)
return lowcap</code>Что делает код:
Запрашивает список всех монет.
Фильтрует только те, чья капитализация меньше max_cap (например, $100 млн).
Сохраняет список в файл cmc_cache.json.
Почему это важно:
CoinMarketCap ограничивает число запросов, и без кэша можно быстро уткнуться в лимиты. По бесплатной подписке доступно 10к запросов в месяц.
Теперь нам нужно узнать, какие пары вообще торгуются на BingX. Далее сравним с полученными лоукапами с CMC и, таким образом, у нас будет готовый список.
<code>def get_bingx_futures():
url = f"{BINGX_BASE_URL}/openApi/swap/v2/quote/contracts"
resp = requests.get(url)
data = resp.json()
futures = []
for s in data.get("data", []):
if s["symbol"].endswith("-USDT"):
futures.append(s["symbol"])
return futures</code>Результат:
<code>['BTC-USDT', 'ETH-USDT', 'PEPE-USDT', 'DOGE-USDT', ...]</code>
Вот ключевой этап, который позволить нам найти токены с низкой капитализаций на bingX. Думаю, что у многих будет вопрос — почему нельзя сразу подтянуть эти данные с bingX? Дело в том, что api не предоставляет этих данных у многих токенов, чаще всего marketCap = 0. Так что, приходится выкручиваться как показано в статье.
Кстати говоря, bingX выбрал, так как он имеет публичный удобный API и на нём много лоукап монет, в отличии от bybit, binance и прочих. Давайте вернёмся к сопоставлению:
Мы должны взять пересечение двух множеств:
lowcap — из CoinMarketCap (low-cap токены)
bingx — с биржи (фьючерсы, доступные к торговле)
<code>def match_cmc_bingx(lowcap, bingx_symbols):
bingx_tokens = [s.replace("-USDT", "").upper() for s in bingx_symbols]
matched = [s for s in bingx_symbols if s.replace("-USDT", "").upper() in lowcap]
return matched
</code>📌 Пример:
Если на CMC есть PEPE, BONK
а на BingX торгуются PEPE-USDT, BONK-USDT,
в результате matched = ['PEPE-USDT', 'BONK-USDT'].
BingX предоставляет публичный endpoint для получения mark price по таймфреймам.
Берём последние две 5-минутные свечи и считаем процент изменения.
<code>def get_5min_change(symbol):
url = f"{BINGX_BASE_URL}/openApi/swap/v2/quote/markPriceKlines"
params = {"symbol": symbol, "interval": "5m", "limit": 2}
resp = requests.get(url, params=params)
data = resp.json()
if not data.get("data"):
return None
prev_close = Decimal(data["data"][0][4])
last_close = Decimal(data["data"][1][4])
change = (last_close - prev_close) / prev_close
return {"symbol": symbol, "price": float(last_close), "change_5min": float(change)}</code>Пояснение: Каждая свеча возвращается в виде массива: [timestamp, open, high, low, close, volume] Мы берём close двух последних и вычисляем относительное изменение.
Теперь объединим всё в одну функцию мониторинга.
Порог пампа (threshold) по умолчанию — 5%.
<code>bot = telebot.TeleBot(TELEGRAM_TOKEN)
def monitor_pumps(symbols, threshold=0.05, interval=300):
print(f"\nМониторинг {len(symbols)} фьючерсов (+{threshold*100:.1f}% за 5 мин)")
while True:
prices_old = {}
for s in symbols:
data = get_5min_change(s)
if data and data["price"] > 0:
prices_old[s] = data["price"]
time.sleep(0.3)
# ждём 5 минут до следующего сравнения
time.sleep(interval)
pumps = []
for s, old_price in prices_old.items():
data = get_5min_change(s)
if data and data["price"] > 0:
change = (data["price"] - old_price) / old_price
if change >= threshold:
pumps.append((s, change, old_price, data["price"]))
time.sleep(0.3)
# отправляем уведомления
if pumps:
for token, ch, old_price, new_price in pumps:
msg = (
f"🚀 {token} пампится!\n"
f"Δ {ch*100:+.2f}% за 5 мин\n"
f"${old_price:.6f} → ${new_price:.6f}"
)
print(msg)
bot.send_message(USER_ID, msg)
else:
print("Пампов не обнаружено.")</code>При первом проходе скрипт сохраняет текущие цены всех фьючерсов.
Через interval (например, 5 минут) получает новые цены.
Для каждого токена считает процент изменения.
Если рост превышает threshold, шлёт уведомление в Telegram.
Повторяет цикл бесконечно.
Пример Telegram-уведомления :
HAJIMI пампится! +5.33% за 5 мин ($0.015950 → $0.016800)
Теперь склеим весь пайплайн:
<code>if __name__ == "__main__":
try:
lowcap = get_cmc_lowcap_symbols()
except Exception:
with open("cmc_cache.json") as f:
lowcap = json.load(f)
bingx = get_bingx_symbols()
matched = match_cmc_bingx(lowcap, bingx)
print(f"Найдено {len(matched)} low-cap токенов, торгующихся на BingX.")
monitor_pumps(matched, threshold=0.05, interval=300)</code>Теперь бот будет следить только за low-cap токенами, которые действительно торгуются на BingX.
Улучшение |
Описание |
|---|---|
Добавить логирование в SQLite |
Хранить историю пампов для анализа |
Сделать полную торговую логику |
расчёт тейка и стопа, открытие сделок |
Оптимизация API |
Объединять запросы, использовать |
Этот проект — пример того, как на чистом Python можно построить умный Telegram-бот для мониторинга рынка.
Бот:
использует публичные API (без авторизации);
фильтрует токены по капитализации;
отслеживает изменение цен;
и уведомляет вас, когда на рынке начинается движение.
💬 Часть 2 (в работе) — поговорим об открытии сделок, расчёт тейка и стопа, бектесте подобных стратегий, подборе параметров.
но неужели люди верят, что это поможет им стабильно зарабатывать в 2026?
На кого это вообще рассчитано)) На тех, кто только недавно услышал, что, ОКАЗЫВАЕТСЯ, можно торговать не только российскими акциями ?))
волшебный бот, чтобы найти на взлёте новый pepe или bonk ?!
ну ок, каждый день он будет выдавать по 10 пампов, и что дальше?))
PEPE и BONk не просто же выросли из ниоткуда «по индикаторам», «на объёмах», «на свечах определённой формы»! Там какие-то мемы стояли за всем этим, cообщества, закрытые дискорд чаты, словом, «культурка».
это событие формата «раз в 10 лет всё сложилось как по нотам», значит попытка найти подобные тикеры неизбежно приведёт к тому, что будут попадаться одни дешёвые подделки и запоздалые подражания. Если играть это всё подряд, то автоматически последует разорение!
амеры в твиттере давно уже похоронили тему с мемкоинами,
а больше поддержать её и накачать деньгами просто некому!
до смартлаба только-только дошёл звон?!
это точно не эстонский форум?