# PredictionLand

{% hint style="success" %}
Совместимость: Windows
{% endhint %}

## 📚 Описание проекта

Prediction Land - это бот, который автоматизирует арбитраж prediction markets, созданный как продолжение нашего продукта [Oxygen Delta](https://oxygendelta.com/). Вы сможете открывать позиции на событиях с быстрым и долгим завершением, чтобы накручивать все метрики нужные для получения будущих дропов: объемы, удержания, PNL.      &#x20;

**Затраты на аккаунты на софте:** будут отличаться в зависимости от настроек, которые вы поставите, софт ловит плюсовые спреды между площадками.

## 🚀 Доступные активности

<details>

<summary>Функционал</summary>

* Парсинг событий на **Polymarket** и **PredictFun**;
* Автоматическое открытие сделок под выбранный вами процент профита;
* Умная система ребалансировки позиций при неудачных открытиях на одной из площадок;
* Клейм завершенных сделок;
* Режим закрытия сделок если сошелся спред и не хотите ждать конца ивента;
* Статистика кошельков;
* Уведомления в Телеграм;
* Отслеживание всех открытых позиций;

</details>

#### **Особенности**

* Автоматический метчинг событий между маркетами;
* Мониторинг событий через WebSocket;
* **Комьюнити** для отслеживания новых вариантов отработки и внедрение этого в софт;

{% hint style="info" %}
За дальнейшими обновлениями можно следить в нашем паблике: <https://t.me/oxygen_tools>
{% endhint %}

***

## ⚙️ Установка

#### **Требования:**

* Установка Node Js: <https://nodejs.org/>

#### **Скачивание:**

1. Перейти в нашего бота: <https://t.me/OduLandBot?start=r_oxygen_x>
2. Личный кабинет -> Доступ к софтам -> Выбрать интересующий вас продукт

<figure><img src="/files/gvVI6qVoYjQLZsWPaKGM" alt=""><figcaption><p> Скачивание продукта</p></figcaption></figure>

***

## ▶️ Первый запуск

1. Разархивируйте софт в удобное для вас место на вашем ПК
2. Запуск производится через .exe файл в корне с софтом. После первого запуска в директории появятся все нужные файлы конфигов
3. Настройте данные для запуска:

* Заполните файлы с данными от аккаунтов (форматы данных будут расписаны ниже)
* Установите оптимальные настройки под ваши требования в config.json и добавьте данные от аккаунтов

<figure><img src="/files/J13tGXdycHQEkhjPTRdn" alt=""><figcaption></figcaption></figure>

***

## ✅ Настройка и начало работы

{% hint style="info" %}
**Гайд по созданию .txt с аккаунтами:**

[Создание файла с данными](/docs/soft/gaidy/sozdanie-faila-s-dannymi.md)
{% endhint %}

### 👤 Подготовка аккаунтов

#### Шаг 1

* Вам понадобится аккаунт на [predict.fun](https://predict.fun/?ref=B8F3A) и [polymarket.com](https://polymarket.com/?via=5G9jT5A);
* Пополнить баланс на <https://openrouter.ai/>;
* Пополнить балансы аккаунтов на маркетах, **минимум по 30$** на каждом;

#### Шаг 2 - PredictFun

* Зайти на <https://predict.fun/> и самостоятельно открыть любую сделку, советую выбрать события которые вот-вот закончатся, по типу BTC/USD Up or Down - они действуют часа 2;
* Справа сверху где выбор "Market, Limit, More" - нажимаете More -> Split. Вписываете 1 и нажимаете Split Shares. Это обязательный пункт для активации аккаунта;

<figure><img src="/files/pfJVbZgpXNsNsOUxXDNu" alt=""><figcaption></figcaption></figure>

* Заходите в настройки своего аккаунта - <https://predict.fun/account/settings> - и в самом низу будет Export -> Сохраняете и приватник, и адрес. Запоминаем их у себя как `privatePredict` - приватник и `addressPredict` - адрес кошелька предикта. Они нам понадобятся позже;

<figure><img src="/files/296IIfey4W0y8UuzGTRB" alt="" width="563"><figcaption></figcaption></figure>

* Переходим в [Discord PredictFun](https://discord.com/invite/predictdotfun) и открываете тикет с просьбой выдать вам API. Обычно это происходит за 2-5 минут. Без него работа будет невозможна;

#### Шаг 3 - Polymarket

* Заходите на любое событие в ветке <https://polymarket.com/crypto>, и так же как с предиктом открываете Split сделку;
* Переходим в меню Builder - <https://polymarket.com/settings?tab=builder> - и создаём свой ключ, вам покажут: `apiKey`, `secret` и `passphrase` - это всё себе записываем. Так же сохраняем `Address` кошелька который показывает на этой же странице сверху;

<figure><img src="/files/wr5e7HkJjf9W6UnZT7h4" alt=""><figcaption></figcaption></figure>

***

### :file\_folder: config.json

`oxygenApiKey` - API Ключ вашего Oxygen.Tools аккаунта для доступа к софтам

*predict:*

`enable` - `true` — не трогаем \
`proxy` - по желанию в формате *ip:port:login:pass* \
`apiKey` - тот который получили в дискорд \
`walletPrivateKey` - приватник от аккаунта Predict который мы получали в Шаг 2 \
`accountAddress` - адрес от аккаунта Predict который мы получали в Шаг 2

*polymarket:*

`enable` - `true` — не трогаем; \
`proxy` - ОБЯЗАТЕЛЬНО, в формате *ip:port:login:pass*. и прокси должны быть страны, где разрешен вход на площадку; \
`privateKey` - от вашего личного кошелька, на котором зарегана площадка; \
`apiKey` - выдаст бот при первом включении в пункте Register Polymarket API keys; \
`apiSecret` - выдаст бот при первом включении в пункте Register Polymarket API keys; \
`apiPassphrase` - выдаст бот при первом включении в пункте Register Polymarket API keys; \
`builderApiKey` - сохранены данные из шага 3, в вкладке builder; \
`builderSecret` - сохранены данные из шага 3, в вкладке builder; \
`builderPassphrase` - сохранены данные из шага 3, в вкладке builder; \
`funderAddress` - адрес аккаунта polymarket, тоже из шага 3;

*matching:*

`marketsModel` - `all_markets` — так и оставляете \
`enable` - `true` — так и оставляете \
`endpoint` - оставляете <https://openrouter.ai/api/v1/chat/completions> \
`model` - советую вставить `x-ai/grok-4-fast` \
`apiKey` - получаете в личном кабинете <https://openrouter.ai/> \
`highConfidence`, `lowConfidence`, `grokRequired`, `learnRule` - не трогаете

*lsh:*

`numHashes`, `bandSize` и `maxCandidates` - не трогаете

*trading:*

`strategy` - сейчас доступна только `only_ask_buy`. то есть бот будет открывать сделки только когда есть достаточно ликвидности для вас, по сути открытие будет по рынку, но через лимитки и с учетом стакана;&#x20;

`minProfitPct` - тут вписываете любое число профита от 0 до 5, дробные поддерживаются, типо 0.1 или 1.1. Выбирать значения нужно под свою стратегию, то есть если аккаунт нацелен на быстрые ежедневные сделки, то зачастую споймать что-то выше 0.5% просто невозможно. А вот месячные исходы можно и в 3% ловить. И да, это число обозначает именно минимальный порог профита с учетом комсы в зависимости от стоимости shares на predictfun. То есть если вы поставите профит 0.1%, то он так же будет реагировать на 10% профита, если такой будет;&#x20;

`maxPerEventUsdt` - сколько бот может поставить на одно событие. то есть если указать 30, то максимум на одной площадке он сможет поставить туда 30$ за все попытки арбитража;&#x20;

`maxBetUsdt` - сколько бот сможет за раз поставить на одной событие. если поставить 20$, то бот будет пытаться открыть сделку на 20$, даже если доступно условно на 500$&#x20;

`splitOrders` - советую `true`. если вы указали 20$ на одно событие за ставку, но доступно к примеру только 7$, то бот пересчитает возможность и будет покупать мелкими частями. если false - то он будет ждать минимум `maxBetUsdt`. то есть вы указали 20$, и он будет ждать пока можно будет купить именно на 20$;&#x20;

`maxPositions` - в какое кол-во разных событий бот может зайти. если он достигнет лимита, то на другие события открывать нечего не будет, до тех пор, пока не завершится одно из, но продолжит набирать позы уже на заполненные, если позволяет лимит;&#x20;

`scanIntervalMs` и `minOrderIntervalMs` - не трогаем;&#x20;

`maxEventDays` - важная настройка что определяет вашу стратегию. она означает через сколько максимум может завершаться событие что ищет бот. то есть, условный *"какой FDV у MegaETH"* может длится и 1 неделю, и 1 год, но на площадке указано что событие завершится через 1 год, то есть 365 дней. если в настройке указать 30, то он будет искать только те события, что завершатся в течении 30 дней;&#x20;

`orderFillTimeoutSec` - сколько в секундах ожидать наполнение ордера, если вдруг при выставлении лимитки кто-то другой успел забрать. если спустя это время ордер не заполнится, то бот начнёт делать ребалансировку;&#x20;

`minBalanceUsdt` - когда бот остановится и будет ждать баланса, советую поставить 5.

`closeSpreadProfit` - бот проверяет базу данных и смотрит в какой % профита были открыты сделки, а после начинает их мониторить. как только спред уменьшится до выбранного вами числа, то бот будет закрывать их. то есть если поставить 0.1, а вы открывали в 2% профита, то при закрытии через этот режим, вы получите 1.9% профита;&#x20;

`closeSpreadMode` - режим закрытия спредов, сейчас доступен только `ask`;

*notifications:*

`botToken` - получать в <https://t.me/BotFather> \
`chatId` - получить в <https://t.me/Getmyid\\_bot><br>

{% hint style="info" %}
`Логин, Пароль, API Ключ` — находятся в личном кабинете телеграм бота\
<https://t.me/OduLandBot?start=r_oxygen_x>\
\
Личный кабинет -> Доступ к софтам -> API Ключ
{% endhint %}

<figure><img src="/files/A8BTZUR7R4ZEDwVZltRx" alt=""><figcaption><p>Авторизация</p></figcaption></figure>

***

{% hint style="info" %}
Все дальнейшие обновления будут публиковаться в нашем паблике: <https://t.me/oxygen_tools>

Ветка в закрытом комьюнити для обсуждения: <https://t.me/c/1908008923/104812/104815>
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tools.oxygen.wiki/docs/soft/predictionland.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
