[ CONCURRENCY: MULTI-WALLET ] [ ENGINE: ORDER-AGGREGATION ]
Количественный узел исполнения промышленного класса
Разработан для прокси-маршрутизации Account Abstraction (AA), параллелизма нескольких кошельков и динамического агрегирования ордеров.
English | 中文 | 日本語 | 한국어 | Español | Русский
<a href="https://github.com/ChiryanOY/MimicPolymarket/raw/main/LICENSE"><img src="https://img.shields.io/badge/License-ISC-blue.svg" alt="License: ISC" /></a>
<a href="https://nodejs.org/"><img src="https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg" alt="Node.js Version" /></a>
<a href="https://polymarket.com/"><img src="https://img.shields.io/badge/Market-Polymarket-6b5cff.svg" alt="Polymarket" /></a>
<a href="https://www.mongodb.com/"><img src="https://img.shields.io/badge/Storage-MongoDB-47A248.svg" alt="MongoDB" /></a>
На высокочастотном поле битвы Polymarket лучшие трейдеры ("Smart Money") часто совершают сделки через множество микро-транзакций (снайпинг). Слепое копирование 1:1 приводит к массовой потере газа и экстремальному проскальзыванию. Кроме того, обновленный API Polymarket требует использования потока Deposit Wallet на основе Account Abstraction, из-за чего традиционные вызовы EOA блокируются с ошибкой maker address not allowed.
Polymarket Mimic Trading Bot — это не просто простая оболочка API. Это полноценный узел автоматического исполнения, включающий сохранение состояния, агрегатор ордеров, механизм динамического контроля рисков и полную совместимость с новым механизмом маршрутизации Relayer от Polymarket.
POLY_1271 и логику взаимодействия Relayer. Строгие механизмы валидации гарантируют, что режим выполнения, состояние контракта on-chain и переменные среды идеально согласованы для предотвращения потери активов.
WALLET_MODE, транслируя ордера через Relayer или нативный RPC.# Клонировать репозиторий
git clone https://github.com/ChiryanOY/MimicPolymarket.git
cd MimicPolymarket
# Установить зависимости
npm install
# Инициализировать конфигурацию
cp .env.docker.example .env
# (Рекомендуется) Запустить интерактивный мастер настройки
# npm run setup
# Если для вашей учетной записи требуется поток Deposit Wallet, выполните:
# npm run setup-deposit-wallet
# Сборка и проверка работоспособности
npm run build
npm run health-check
# Запуск механизма исполнения
npm start
Среда выполнения зависит от файла .env (см. /.env.docker.example).
USER_ADDRESSES: Целевые кошельки для мониторинга (через запятую).TRADING_WALLET: Адрес исполнения (EOA/Safe для LEGACY; производный Deposit Wallet для DEPOSIT).WALLET_MODE: Режим маршрутизации (LEGACY или DEPOSIT).PRIVATE_KEY: Приватный ключ владельца (Owner) или подписанта (Signer).CLOB_HTTP_URL / CLOB_WS_URL: Эндпоинты API Polymarket.MONGO_URI: Строка подключения к конечному автомату MongoDB.RPC_URL / USDC_CONTRACT_ADDRESS: Конфигурация сети Polygon.LEGACYРазработан для ранних вызовов прямой подписи EOA или Safe multi-sig. Механизм строго проверяет, совпадает ли TRADING_WALLET с Signer, полученным из PRIVATE_KEY.
DEPOSIT (Обязателен для нового API)Требуется, когда Polymarket перехватывает вызовы с ошибкой maker address not allowed, please use the deposit wallet flow.
1. Настройте учетные данные Relayer, такие как POLY_BUILDER_API_KEY.
2. Запустите npm run setup-deposit-wallet для динамического вывода Deposit Wallet и установите его в качестве TRADING_WALLET.
3. При запуске механизм строго проверяет статус развертывания контракта этого адреса on-chain.
⚠️ Перехват безопасности: Если
WALLET_MODEне совпадает с реальностью on-chain, механизм выдает фатальную ошибку (Fatal Error) во время инициализации и останавливается для защиты ваших средств.
Детальный контроль достигается с помощью TRADER_STRATEGIES, который должен быть допустимой строкой JSON:
[
{
"address": "0xabc...",
"mimicSize": 1.0,
"maxOrderSizeUSD": 500,
"maxPositionSizeUSD": 2000,
"tradeAggregationEnabled": true,
"tradeAggregationWindowSeconds": 5
}
]
По умолчанию стратегия использует алгоритм пропорционального масштабирования на основе PERCENTAGE.
Чтобы гарантировать, что количественное исполнение является одновременно эффективным и высокобезопасным, бот использует два совершенно разных конвейера контроля рисков для покупки и продажи. Вот разбивка основных механизмов:
Когда механизм обнаруживает операцию покупки "Smart Money", он запускает строгую последовательность условных проверок:
1. Расчет базового размера: Вычисляет целевую сумму токена на основе настроенного процента mimicSize: Trader Tokens * (mimicSize / 100).
2. Многопороговое масштабирование:
- Максимальный размер ордера: Если рассчитанная стоимость токена превышает maxOrderSizeUSD, она строго ограничивается этим лимитом.
- Максимальный размер позиции: Механизм оценивает вашу текущую стоимость позиции плюс стоимость входящего ордера. Если это превышает maxPositionSizeUSD, ордер урезается, чтобы соответствовать оставшемуся лимиту. Если оставшийся лимит составляет менее 5 токенов, ордер отклоняется.
- Защита баланса: Проверяет ваш текущий баланс USDC и ограничивает ордер до 99% от доступных средств, чтобы предотвратить ошибки INSUFFICIENT_BALANCE из-за незначительных колебаний цен или комиссий.
3. Проскальзывание и исполнение лимитных ордеров: Берется цена исполнения трейдера и добавляется настроенный buySlippageThreshold. Затем генерируется строгий Лимитный ордер (Limit Order). Это гарантирует, что даже во время экстремальной волатильности рынка стоимость вашего входа никогда не превысит порог безопасности.
Продажа обычно означает, что "Smart Money" фиксирует прибыль или сокращает убытки. Поэтому приоритет исполнения и захват ликвидности имеют первостепенное значение. Механизм принимает стратегию "Clear & Market Snipe":
1. Очистка ожидающих ордеров на покупку: Перед выполнением продажи механизм активно отменяет все ваши ожидающие ордера на ПОКУПКУ (BUY) для этого конкретного актива, чтобы высвободить капитал и избежать конфликтующих сделок.
2. Динамическая пропорциональная продажа:
- Система сравнивает размер продажи трейдера с размером его исторической позиции, чтобы рассчитать истинный Процент продажи (Sell Percentage).
- Затем она умножает ваш реальный баланс токенов CLOB на этот процент, чтобы определить сумму продажи. Если трейдер сбрасывает всю свою позицию (или если его историческую позицию невозможно отследить), механизм инициирует 100% полную ликвидацию ваших активов.
3. Исполнение FOK (Fill-or-Kill):
- Механизм получает Книгу ордеров (Order Book) в реальном времени, чтобы найти покупателя с самой высокой ценой (Best Bid).
- Вычитается настроенный sellSlippageThreshold для установления минимальной цены безопасности.
- Затем ордер транслируется с использованием типа ордера FOK (Fill-or-Kill). FOK гарантирует, что ордер будет либо немедленно полностью исполнен, либо полностью отменен, предотвращая зависание фрагментированных частичных исполнений в книге ордеров.
- В случае сдвигов ликвидности, вызывающих отказы FOK или проблем с сетью, механизм запускает механизм повторных попыток с экспоненциальной задержкой (вплоть до RETRY_LIMIT), агрессивно преследуя ликвидность до тех пор, пока позиция не будет очищена.
Мы предоставляем готовый файл docker-compose.yml для запуска как Bot, так и экземпляра MongoDB с помощью одной команды, обеспечивая чистое выполнение в виде локального демона (Local Daemon).
# Инициализировать среду
cp .env.docker.example .env
# Рекомендуем установить это в .env: MONGO_URI='mongodb://mongodb:27017/polymarket_mimictrading'
# Запустить сервисы
docker-compose up -d
# Просмотр логов
docker-compose logs -f bot
USER_ADDRESSES и позвольте механизму взять управление на себя.<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=ChiryanOY/MimicPolymarket&type=Date" />
ISC License - Подробности см. в LICENSE.
Отказ от ответственности: Это программное обеспечение предоставляется строго для технических исследований, изучения кода и образовательных целей. Оно не является финансовым или инвестиционным советом. Рынки предсказаний несут в себе экстремальные риски, а автоматическое исполнение может привести к полной потере капитала. Разработчики не несут ответственности за какие-либо финансовые потери. Развертывайте эту систему на свой страх и риск только после полного понимания логики исходного кода.
$ claude mcp add MimicPolymarket \
-- python -m otcore.mcp_server <graph>