> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.6mm.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.6mm.com/_mcp/server.

# Вічні посади

Цей посібник призначений для **Agent Java SDK `v0.3.0`**, Java 8+ і публічного контракту з тегами. Приклади виконуються в серверній частині партнера після ініціалізації `client` у [Швидкий старт](/uk/sdk/agent-sdk/java/quick-start).

## Приклад передумов

Фрагменти Java поділяють ці імпортовані файли. Ініціалізуйте `client` за допомогою швидкого запуску та отримайте `platformUserId` із збереженого зв’язування. Приклади ідентифікаторів користувача/замовлення потрібно замінити вашими постійними значеннями.

```java
import com.sixmm.agent.*;
import com.sixmm.agent.model.*;
import java.util.*;
```

## `listCurrentPerpetualPositions`

Модель запиту: `CurrentPerpetualPositionsRequest`.

```java
import com.sixmm.agent.model.CurrentPerpetualPositionsRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;

CurrentPerpetualPositionsRequest request = new CurrentPerpetualPositionsRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.symbol = "BTCUSDT";
PerpetualResponse response = client.listCurrentPerpetualPositions(request);
System.out.println(response.data.items.size());
System.out.println(response.data.hasMore);
System.out.println(response.data.nextCursor);
```

### Поля запиту

| Поле              | Тип Java.                | Обов'язковий | Значення                                                                                                                                                             |
| ----------------- | ------------------------ | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `platformUserIds` | `java.util.List<String>` | Умовний      | 1–100 унікальних публічних ідентифікаторів; необхідні для заповнення та умовних замовлень. Пропустити підтримувані запити для області прямого гравця; \[] недійсний. |
| `symbol`          | `String`                 | немає        | Додатковий фільтр торгових пар.                                                                                                                                      |
| `limit`           | `Integer`                | немає        | За замовчуванням 500; 1–1000.                                                                                                                                        |
| `cursor`          | `String`                 | немає        | Використовуйте повернутий nextCursor із незмінними фільтрами; зупинятися, коли hasMore невірно.                                                                      |

Приклад читає одну сторінку. Для обов’язкових полів, обсягу гравця, семантики фільтра, обмеження, курсору та обмежених повторних спроб див [Огляд запиту](/uk/sdk/agent-sdk/java/perpetual-queries). Зберігайте всі фільтри незмінними під час перегляду сторінок; не інтерпретуйте помилку як порожній результат.

## `listPerpetualPositionHistory`

Модель запиту: `PerpetualPositionHistoryRequest`.

```java
import com.sixmm.agent.model.PerpetualPositionHistoryRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;

PerpetualPositionHistoryRequest request = new PerpetualPositionHistoryRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.symbol = "BTCUSDT";
request.endTime = System.currentTimeMillis();
request.startTime = request.endTime - 3_600_000L;
PerpetualResponse response = client.listPerpetualPositionHistory(request);
System.out.println(response.data.items.size());
System.out.println(response.data.hasMore);
System.out.println(response.data.nextCursor);
```

### Поля запиту

| Поле              | Тип Java.                | Обов'язковий | Значення                                                                                                                                                             |
| ----------------- | ------------------------ | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `platformUserIds` | `java.util.List<String>` | Умовний      | 1–100 унікальних публічних ідентифікаторів; необхідні для заповнення та умовних замовлень. Пропустити підтримувані запити для області прямого гравця; \[] недійсний. |
| `symbol`          | `String`                 | немає        | Додатковий фільтр торгових пар.                                                                                                                                      |
| `positionSide`    | `String`                 | немає        | Фільтруйте за допомогою enum на стороні вихідної позиції.                                                                                                            |
| `startTime`       | `Long`                   | немає        | Включно Unix мілісекунди; використовуйте фіксоване вікно історії UTC.                                                                                                |
| `endTime`         | `Long`                   | немає        | Ексклюзивні мілісекунди Unix.                                                                                                                                        |
| `limit`           | `Integer`                | немає        | За замовчуванням 500; 1–1000.                                                                                                                                        |
| `cursor`          | `String`                 | немає        | Використовуйте повернутий nextCursor із незмінними фільтрами; зупинятися, коли hasMore невірно.                                                                      |

Приклад читає одну сторінку. Для обов’язкових полів, обсягу гравця, семантики фільтра, обмеження, курсору та обмежених повторних спроб див [Огляд запиту](/uk/sdk/agent-sdk/java/perpetual-queries). Зберігайте всі фільтри незмінними під час перегляду сторінок; не інтерпретуйте помилку як порожній результат.

## Посади: поточні та історичні

| `data` поле       | типу    | Поточна позиція | Історичні позиції | значення                                                                                                                                    |
| ----------------- | ------- | --------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `positionId`      | string  | постачання      | постачання        | ID позиції, що відповідає entityId                                                                                                          |
| `symbol`          | string  | постачання      | постачання        | торгова пара                                                                                                                                |
| `positionSide`    | string  | постачання      | постачання        | LONG / SHORT / BOTH та інші напрямки розташування                                                                                           |
| `status`          | string  | постачання      | постачання        | Рядок із числовим статусом позиції див. огляд запиту                                                                                        |
| `leverage`        | integer | постачання      | постачання        | Кредитне плече кілька                                                                                                                       |
| `marginMode`      | string  | постачання      | постачання        | Числовий рядок нумерації "1" для повної позиції, "2" для ізольованої позиції                                                                |
| `quantity`        | string  | постачання      | Не доступний      | Поточна кількість позицій                                                                                                                   |
| `entryPrice`      | string  | постачання      | постачання        | Середня ціна відкриття збережених позицій                                                                                                   |
| `margin`          | string  | постачання      | Не доступний      | Сума маржі поточної позиції, а не весь контрактний баланс гаманця користувача                                                               |
| `maxQuantity`     | string  | Не доступний    | постачання        | Максимальна кількість позицій, записаних у цій історичній позиції                                                                           |
| `closeQuantity`   | string  | Не доступний    | постачання        | Сукупна кількість закритих позицій протягом історичного життєвого циклу позиції                                                             |
| `closePrice`      | string  | Не доступний    | постачання        | Збережена середня ціна закриття                                                                                                             |
| `pnl`             | string  | Не доступний    | постачання        | Історичні прибутки та збитки; не поєднуйте його з транзакцією realizedPnl, щоб просто повторювати та накопичувати                           |
| `roe`             | string  | Не доступний    | постачання        | Пропорційне значення прибутку історичної позиції, не помножене на 100; наприклад, `"0.043"` представляє `4.3%`, `"-0.05"` представляє `-5%` |
| `fundingFeeAccum` | string  | постачання      | постачання        | Комісія за накопичене фінансування, збереження символу джерела та точності                                                                  |
| `openedAt`        | integer | постачання      | постачання        | Час відкриття позиції, мілісекунди                                                                                                          |
| `updatedAt`       | integer | постачання      | Не доступний      | Час оновлення поточної позиції, мілісекунди                                                                                                 |
| `closedAt`        | integer | Не доступний    | постачання        | Час закриття, мілісекунди; використовуйте це поле для фільтрації історичного часу позиції                                                   |

Калібр обчислення історії `roe` — `pnl / (entryPrice × maxQuantity / leverage)`, і інтерфейс безпосередньо повертає збережене значення пропорції. Відображаючи відсотки, використовуйте десяткову операцію та помножте на 100, потім додайте `%`; у знаменнику використовується номінальна маржа запису історичної позиції, а не баланс гаманця облікового запису. Коли ціна відкриття або максимальна кількість позицій дорівнює 0, кредитне плече недійсне тощо, і його неможливо обчислити, джерело зберігається як 0. Тому не можна зробити висновок, що прибуток або збиток дорівнює 0 лише на основі `roe=0`.

Поточна позиція не має ціни позначки в реальному часі, плаваючого прибутку та збитку в реальному часі, ROE або ціни ліквідації в реальному часі. Він відображає статус збереженої позиції та не може використовувати поля часу оновлення та маржі для отримання поточних результатів контролю ризиків у реальному часі.

## Приклад конверта відповіді

Це ілюстративна порожня сторінка, а не зразок завершеної торгівлі. У наведених вище таблицях полів для певних ресурсів описано заповнені `items[].data`.

```json
{"code":0,"message":"success","data":{"items":[],"nextCursor":"","hasMore":false}}
```

## Джерело та відповідні посібники

* [Офіційне джерело v0.3.0](https://github.com/6mm-com/agent-java-sdk/tree/54aa3c1)
* [Огляд запиту та розбивка на сторінки](/uk/sdk/agent-sdk/java/perpetual-queries)
* [Гаманець для фінансування](/uk/sdk/agent-sdk/java/funding-wallet)
* [Посібник з оновлення](/uk/sdk/agent-sdk/java/upgrade)