MCPcopy Index your code
hub / github.com/ChiryanOY/MimicPolymarket

github.com/ChiryanOY/MimicPolymarket @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
161 symbols 477 edges 38 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Polymarket Mimic Trading Bot

[ 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.

Основные архитектурные особенности

  • Механизм агрегирования ордеров: Создает временное окно в памяти (например, 5 секунд) для агрегирования фрагментированных сделок на одном рынке/исходе в пределах ценового порога в чистые пакетные ордера, избегая ограничений скорости (rate limits) и повышая эффективность исполнения.
  • Динамический риск и масштабирование точности: Детальная матрица стратегий JSON, которая динамически рассчитывает размер исполнения на основе вашего соотношения капитала, автоматически обрабатывает требования к Tick Size конкретной биржи и применяет строгие ограничения на проскальзывание.
  • Прокси-маршрутизация AA (поток Deposit Wallet): Изначально реализует протокол подписи POLY_1271 и логику взаимодействия Relayer. Строгие механизмы валидации гарантируют, что режим выполнения, состояние контракта on-chain и переменные среды идеально согласованы для предотвращения потери активов.
  • Конечный автомат и отказоустойчивость: Весь жизненный цикл (позиции, метаданные ордеров, история исполнения) сохраняется в реальном времени в MongoDB. Встроенные механизмы сетевых повторных попыток используют алгоритмы экспоненциальной задержки (Exponential Backoff) для обработки нестабильности RPC.

Обзор архитектуры

screenshot

  1. Непрерывный мониторинг: Опрашивает поток активности целевых адресов через Polymarket Data API.
  2. Агрегирование и очистка: Объединяет высокочастотный шум в пределах временного окна в выполнимые пакетные ордера.
  3. Контроль рисков и масштабирование: Динамически рассчитывает истинный размер ордера на основе баланса счета и матрицы стратегий.
  4. Маршрутизация и валидация: Автоматически переключает базовую логику подписи на основе WALLET_MODE, транслируя ордера через Relayer или нативный RPC.
  5. Сохранение: Записывает полный жизненный цикл состояния в MongoDB для бесшовного восстановления.

Быстрый старт

Предварительные требования

  • Node.js v18+
  • База данных MongoDB (рекомендуется MongoDB Atlas)
  • Кошелек Polygon с пополненными USDC и POL/MATIC для газа
  • RPC эндпоинт Polygon (например, Infura, Alchemy)

Быстрое развертывание

# Клонировать репозиторий
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

Мы предоставляем готовый файл 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

Поиск Альфы (Smart Money)

  1. Проанализируйте Таблицу лидеров Polymarket (Leaderboard).
  2. Отфильтруйте трейдеров с положительным P&L, процентом выигрышей >55% и недавней активностью.
  3. Проведите перекрестную проверку глубокой статистики с помощью Predictfolio.
  4. Вставьте выбранные адреса в USER_ADDRESSES и позвольте механизму взять управление на себя.

Star History

<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=ChiryanOY/MimicPolymarket&type=Date" />

Лицензия

ISC License - Подробности см. в LICENSE.

Благодарности


Отказ от ответственности: Это программное обеспечение предоставляется строго для технических исследований, изучения кода и образовательных целей. Оно не является финансовым или инвестиционным советом. Рынки предсказаний несут в себе экстремальные риски, а автоматическое исполнение может привести к полной потере капитала. Разработчики не несут ответственности за какие-либо финансовые потери. Развертывайте эту систему на свой страх и риск только после полного понимания логики исходного кода.

Extension points exported contracts — how you extend this code

HealthCheckResult (Interface)
(no doc)
src/utils/healthCheck.ts
UserActivityModelRef (Interface)
(no doc)
src/services/tradeExecutorModules/persistence.ts
Config (Interface)
(no doc)
src/scripts/setup.ts
UserActivityInterface (Interface)
(no doc)
src/interfaces/User.ts
TraderStrategyConfig (Interface)
(no doc)
src/config/mimicStrategy.ts
WalletRuntimeInfo (Interface)
(no doc)
src/utils/walletMode.ts
TradeWithUser (Interface)
(no doc)
src/services/tradeExecutorModules/types.ts
UserPositionInterface (Interface)
(no doc)
src/interfaces/User.ts

Core symbols most depended-on inside this repo

error
called by 100
src/utils/logger.ts
info
called by 56
src/utils/logger.ts
warning
called by 40
src/utils/logger.ts
success
called by 11
src/utils/logger.ts
separator
called by 11
src/utils/logger.ts
question
called by 11
src/scripts/setup.ts
getUserActivityModel
called by 9
src/models/userHistory.ts
writeToFile
called by 8
src/utils/logger.ts

Shape

Function 104
Method 35
Interface 14
Class 8

Languages

TypeScript100%

Modules by API surface

src/utils/logger.ts24 symbols
src/scripts/setup.ts14 symbols
src/config/env.ts12 symbols
src/utils/postOrderModules/shared.ts11 symbols
src/services/tradeExecutorModules/persistence.ts8 symbols
src/services/tradeExecutorModules/aggregation.ts8 symbols
src/config/mimicStrategy.ts8 symbols
src/services/myStateManager.ts7 symbols
src/services/tradeExecutorModules/execution.ts6 symbols
src/scripts/setupDepositWallet.ts6 symbols
src/services/tradeExecutor.ts5 symbols
src/utils/walletMode.ts4 symbols

Datastores touched

(mongodb)Database · 1 repos
polymarket_mimictradingDatabase · 1 repos

For agents

$ claude mcp add MimicPolymarket \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact