Торговый бот для Pump.fun
Понимаю, что бюджет маленький, но возможно кому-то будет действительно интересно заняться этой задачей.
Техническое задание v1.0
Торговый бот для Pump.fun (торговля после миграции)
1. Общая концепция
Бот автоматически:
отслеживает токены, прошедшие миграцию (Graduated) на Pump.fun
фильтрует их по заданным параметрам
ищет оптимальную точку входа не выше цены миграции
автоматически открывает позицию
управляет позицией (TP / SL / Time Exit)
ведёт детальное логирование и статистику
Поддерживается одновременная торговля несколькими токенами.
2. Источники данных
2.1 Список мигрировавших токенов
GET https://advanced-api-v2.pump.fun/coins/graduated?sortBy=creationTime
Данные сохраняются в структуру (JSON / in-memory / БД — на усмотрение разработчика)
***RPC задаётся из конфига.
2.2 Данные по конкретному токену
GET https://frontend-api-v3.pump.fun/coins/{coinMint}
3. Цена / Market Cap миграции
Приоритет: использовать официальный endpoint Pump.fun, если он существует (где отражается MarketCap миграции)
Fallback (обязательный):
migration_marketcap = SOL_price (её нужно подтягивать с любого источника, который отдаёт курс) * 410,8
Если официальный источник не найден — расчётная цена считается истиной
4. Фильтрация токенов (задаётся в конфиге)
Фильтры работают по логике AND.
Каждый фильтр может быть включён / отключён через конфиг.
4.1 Доступные фильтры
Время с момента миграции:
от X до Y секунд (по правилам площадки)
Market Cap:
от A $ до B $
Количество холдеров:
от C до D
Volume:
за всё время
от E до F
Если подходящих монет нет — бот продолжает polling.
5. Выбор монет и параллельность
Разрешена торговля несколькими монетами одновременно
Лимит на количество открытых позиций — опциональный, задаётся в конфиге
Приоритет выбора монет:
По времени (самые ранние)
6. Поиск точки входа
6.1 Мониторинг
Частота обновления: настраиваемая (по умолчанию 2 раза в секунду) (из конфига)
При задержках или ошибках API — логировать
6.2 Условия входа
Возможные режимы (выбор в конфиге):
Просадка от цены миграции (задаём в конфиге процент отката)
Агрессивный вход по маркету
6.3 Агрессивный вход
Если: отката(просадки) нет
цена(мкап) текущего токена ≤ цены(мкап) миграции
7. Открытие позиции (покупка)
7.1 BID (размер позиции)(задаём в конфиге)
Поддерживаются:
Фиксированный BID
Динамический BID
7.2 Dynamic BID — Hybrid mode
Определения
start_bank — банк на старте сессии (чекается из кошелька для основного режима, для бэктест мода, задаётся из конфига)
wallet_value:
SOL_balance+ (стоимость всех открытых позиций по текущему Market Cap)
floor_wallet:
start_bank * floor_pct
Формула
effective_wallet = max(wallet_value, floor_wallet)
bid = effective_wallet * dynamic_bid_pct
bid = min(bid, max_bid_sol)
(Можно предложить свой вариант подсчёта динамического бида)
Правила
BID пересчитывается перед каждой покупкой
BID не может превышать max_bid_sol (задаём в конфиге)
Если SOL_balance < bid = остановить бота\уведомить о сливе
7.3 Дополнительно (задаём в конфиге)
Slippage — из конфига
Размер комиссии
MEV-защита — глобальная настройка (если доступна)
Частично исполненная покупка:
считается открытой позицией
допокупка остатка не производится
***что происходит с открытыми позициями при закрытии/краше бота ?
***возврат ботом комиссии за открытие аккаунта
8. Управление позицией (выход)
8.1 Условия выхода (приоритет)
Take Profit
Stop Loss
Time Exit
Все проценты считаются от Market Cap входа.
8.2 Take Profit
Возможна частичная продажа
% продажи задаётся в конфиге (то есть несколько тейк профитов)
8.3 Stop Loss
Всегда закрывает всю позицию
8.4 Time Exit
Срабатывает, если TP и SL не достигнуты по истечении заданного времени
8.5 Дополнительные возможности
Продать все позиции
Продать все позиции больше X $ (значение из конфига)
***механизм распродажи мунбегов ? Если остались монеты
9. Ограничения
Повторный вход в одну и ту же монету — ❌
Дроблённый вход — ❌
10. Логирование и аналитика
10.1 Формат
JSON\БД (на усмотрение разраба)
10.2 Для каждой позиции логировать (и в консоль и в файл\бд)
Token (mint, название)
Время входа и выхода
Размер позиции (SOL)
Market Cap входа и выхода
Тип выхода (TP / SL / Time)
Все комиссии:
сеть
покупка
продажа
MEV
Итоговый PnL
***Все покупки и продажи падают в тг
10.3 Статистика
Количество сделок
Winrate
Общий PnL
11. Конфигурация
Все параметры задаются через config-файл
Горячее изменение параметров — ❌
Комиссии покупки / продажи задаются явно
12. Режимы работы
1-Основной режим (mainnet)
2-Simulation / Paper Trading (В идеале единственное отличие должно быть в отсутствии реальных транзакций)
***восстанавливаемый ли процесс работы бота ?
***как бот будет реагировать если я руками продам позицию после его покупки ?
***многопоточность и параллельная работа с позициями ( объяснить\обсудить логику?)
***
13. Обработка ошибок
API ошибки → retry
Недоступность данных → лог + увед в телеграм
