# Как собрать ИИ-бота для торговли на Polymarket: стратегии, настройка и риски

> AI Release · @ai_release1 · https://ai-release.org/guides/kak-sobrat-ii-bota-dlya-torgovli-na-polymarket-strategi.html

Разбираем, как собрать и запустить торгового ИИ-бота для Polymarket — рынка предсказаний, где цена контракта отражает вероятность события. За основу берём открытый проект polytutor-ai/polymarket-ai-trading-bot: решения в нём принимает связка ML-ансамбля (несколько моделей, чьи предсказания объединяют в одно) и LLM от OpenAI, а отдельный модуль копирует сделки из лидерборда. Это серверная сборка из Rust-сервисов, журнала учёта (ledger) в Postgres и Python-компонента, поэтому гайд рассчитан на ПК или сервер, а не на телефон.

## Требования и подготовка
![Иллюстрация к разделу «Требования и подготовка»](https://ai-release.org/guides/img/kak-sobrat-ii-bota-dlya-torgovli-na-polymarket-strategi-ru-1.jpg)


- ПК или сервер с доступом в интернет — бот собран из сервисов и базы данных, а не как мобильное приложение. Если нужен именно ИИ на телефоне, это другой сценарий: [приложения и настройка локальных моделей на Android](https://ai-release.org/guides/kak-zapustit-ii-model-lokalno-na-android-prilozheniya-i.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).
- Git — исходники лежат в репозитории polytutor-ai/polymarket-ai-trading-bot.
- Тулчейн Rust (cargo) — сервисы проекта написаны на Rust.
- PostgreSQL — в проекте он играет роль ledger, то есть журнала учёта сделок.
- Python — в репозитории есть отдельный Python-компонент (в описании он обозначен как «a Python mo…»).
- API-ключ OpenAI — LLM от OpenAI участвует в принятии торговых решений.
- Аккаунт на Polymarket — бот торгует на рынках предсказаний этой платформы.
- Понимание ML-ансамбля: это набор моделей, чьи ответы складывают вместе, чтобы итоговое решение было устойчивее, чем у одной модели.
- Если не хотите зависеть от внешнего LLM, заранее сравните подходы: [как собрать ИИ-помощника на локальной модели](https://ai-release.org/guides/kak-sobrat-ii-pomoschnika-dlya-internet-magazina-na-lok.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

## Пошаговая инструкция
![Иллюстрация к разделу «Пошаговая инструкция»](https://ai-release.org/guides/img/kak-sobrat-ii-bota-dlya-torgovli-na-polymarket-strategi-ru-2.jpg)


1. Клонируйте репозиторий к себе.

**Пример:**

```bash
git clone https://github.com/polytutor-ai/polymarket-ai-trading-bot.git
cd polymarket-ai-trading-bot
ls
```

Ожидаемый результат: команда `ls` печатает список файлов и папок проекта — README и каталоги компонентов. Почему это работает: `git clone` скачивает всё содержимое репозитория в локальную папку.

2. Прочитайте README и выпишите три вещи: команды запуска Rust-сервисов, параметры подключения к Postgres и способ запуска Python-компонента. Ожидаемый результат: у вас на листе появляется короткая шпаргалка по запуску. Отдельно учтите: описание репозитория в анонсе обрывается на «a Python mo…», поэтому единственный надёжный источник деталей — сам README, а не пересказы.

3. Составьте карту модулей, чтобы понимать, что именно вы запускаете.

| Модуль | Что делает | Технология |
|---|---|---|
| Принятие решений | выбирает, куда входить в сделку | ML-ансамбль + LLM OpenAI |
| Копи-трейдинг | повторяет сделки из лидерборда | отдельный модуль проекта |
| Ledger | хранит журнал учёта сделок | Postgres |
| Основные сервисы | рабочая логика бота | Rust |
| Python-компонент | часть проекта, описан в репозитории | Python |

Ожидаемый результат: вы видите, что бот — это не один файл, а набор компонентов, и дальше запускаете их осознанно.

4. Поднимите Postgres под ledger. Создайте отдельную базу, чтобы журнал сделок не смешивался с другими данными.

**Пример:**

```bash
createdb polymarket_ledger
psql -d polymarket_ledger -c "\dt"
```

Ожидаемый результат: база создана, список таблиц пустой — таблицы появятся после первого запуска бота. Почему так: ledger — это журнал, и ему нужно место для хранения; в проекте эта роль отведена Postgres.

5. Задайте ключ OpenAI в переменных окружения того терминала, где будете запускать сервисы. Имена переменных сверьте с README — ниже шаблон, а не догма.

**Пример:**

```bash
export OPENAI_API_KEY="sk-..."
export DATABASE_URL="postgres://bot:secret@localhost:5432/polymarket_ledger"
echo $OPENAI_API_KEY
```

Ожидаемый результат: `echo` печатает ключ без ошибок. Почему это важно: LLM от OpenAI принимает решения, и без ключа эта часть схемы просто не ответит.

6. Соберите Rust-сервисы. Если в README указан `cargo`, команда выглядит так:

```bash
cargo build --release
```

Ожидаемый результат: в конце вывода появляется строка `Finished`. Почему это работает: Rust компилирует код заранее, поэтому готовый бинарник потом стартует быстрее.

7. Запустите сервисы: Rust-часть в одном окне терминала, Python-компонент — во втором. Ожидаемый результат: в логах видны строки подключения к Postgres и обращения к OpenAI. Если логов нет — сверьтесь с README: возможно, нужен другой порядок запуска.

8. Включите модуль копи-трейдинга. Он повторяет сделки трейдеров из лидерборда — списка лучших участников платформы. Ожидаемый результат: в ledger начинают появляться записи, повторяющие чужие сделки. Почему так: копи-трейдинг не строит прогноз сам, он копирует действия выбранных трейдеров, поэтому без их активности копировать нечего.

9. Проверьте, что ledger наполняется. Имя таблицы уточните в README, затем посчитайте записи.

**Пример:**

```bash
psql -d polymarket_ledger -c "select count(*) from trades;"
```

Ожидаемый результат: число записей растёт по мере работы бота. Это ваш главный индикатор, что связка «сервисы → Postgres» собрана верно.

Чек-лист перед первым рабочим запуском:

- [ ] Репозиторий склонирован, README прочитан
- [ ] Postgres поднят, база под ledger создана
- [ ] Ключ OpenAI задан в том же терминале, где идёт запуск
- [ ] Rust-сервисы собраны без ошибок
- [ ] Python-компонент запускается
- [ ] Копи-трейдинг включён, записи доходят до ledger

## Возможные проблемы и решения
![Иллюстрация к разделу «Возможные проблемы и решения»](https://ai-release.org/guides/img/kak-sobrat-ii-bota-dlya-torgovli-na-polymarket-strategi-ru-3.jpg)


1. **Симптом:** при сборке выводится «cargo: command not found». Это значит, что тулчейн Rust не установлен. Решение: поставьте Rust, перезапустите терминал и повторите шаг 6. Проверка: команда `cargo --version` печатает номер версии, а не ошибку.

2. **Симптом:** сервисы падают с ошибкой подключения к БД вида «connection refused» на порту 5432. Решение: проверьте по порядку — запущен ли Postgres, создана ли база из шага 4, совпадает ли `DATABASE_URL` с реальными логином, паролем, хостом и портом. После правок перезапустите сервисы, потому что переменные читаются только при старте.

3. **Симптом:** копи-трейдинг включён, но сделки в ledger не появляются. Решение: проверьте, что источник — лидерборд Polymarket и что выбранные трейдеры действительно совершают сделки. Если у источника нет новых сделок, копировать нечего, и пустой журнал — не поломка.

## FAQ

**Что такое ML-ансамбль и зачем он в боте?**
Это несколько моделей, чьи предсказания объединяют в одно решение: так бот меньше зависит от ошибки одной модели. В polytutor-ai/polymarket-ai-trading-bot ансамбль работает в связке с LLM от OpenAI.

**Нужен ли ключ OpenAI?**
Да, LLM от OpenAI — часть схемы принятия решений. Если внешняя зависимость не подходит, посмотрите [гайд про локальную модель](https://ai-release.org/guides/kak-sobrat-ii-pomoschnika-dlya-internet-magazina-na-lok.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide) — там разбирается другой сценарий, но логика «модель локально» объяснена поня
