Перейти к навигации

Бессрочные позиции

Бессрочные позиции: Интеграция с Agent Java SDK v0.3.0, примеры, параметры и семантика ответа.

Просмотр в формате Markdown

Это руководство предназначено для Agent Java SDK v0.3.0, Java 8+ и помеченного публичного контракта. Примеры выполняются в серверной части партнера после инициализации client в Быстрый старт.

Пример предварительных условий

Фрагменты Java разделяют этот импорт. Инициализируйте client с помощью быстрого запуска и получите platformUserId из сохраненной привязки. Примеры идентификаторов пользователей/заказов необходимо заменить вашими собственными сохраненными значениями.

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

listCurrentPerpetualPositions

Модель запроса: CurrentPerpetualPositionsRequest.

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 типНеобходимыйЗначение
platformUserIdsjava.util.List<String>Условный1–100 уникальных публичных идентификаторов; требуется для исполнения и условных ордеров. Опустить поддерживаемые запросы для прямой области действия игрока; [] недействительно.
symbolStringНетДополнительный фильтр торговых пар.
limitIntegerНетПо умолчанию 500; 1–1000.
cursorStringНетИспользуйте возвращенный nextCursor с неизмененными фильтрами; остановитесь, когда hasMore имеет значение false.

Пример читает одну страницу. Для обязательных полей, области действия игрока, семантики фильтра, ограничения, курсора и ограниченных повторов следуйте инструкциям. Обзор запроса. Сохраняйте все фильтры неизменными при пейджинге; не интерпретируйте ошибку как пустой результат.

listPerpetualPositionHistory

Модель запроса: PerpetualPositionHistoryRequest.

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 типНеобходимыйЗначение
platformUserIdsjava.util.List<String>Условный1–100 уникальных публичных идентификаторов; требуется для исполнения и условных ордеров. Опустить поддерживаемые запросы для прямой области действия игрока; [] недействительно.
symbolStringНетДополнительный фильтр торговых пар.
positionSideStringНетФильтрация с использованием перечисления на стороне позиции источника.
startTimeLongНетВключительно миллисекунды Unix; используйте фиксированное окно истории UTC.
endTimeLongНетЭксклюзивные миллисекунды Unix.
limitIntegerНетПо умолчанию 500; 1–1000.
cursorStringНетИспользуйте возвращенный nextCursor с неизмененными фильтрами; остановитесь, когда hasMore имеет значение false.

Пример читает одну страницу. Для обязательных полей, области действия игрока, семантики фильтра, ограничения, курсора и ограниченных повторов следуйте инструкциям. Обзор запроса. Сохраняйте все фильтры неизменными при пейджинге; не интерпретируйте ошибку как пустой результат.

Позиции: текущие и исторические

Поле dataтипТекущая позицияИсторические позициизначение
positionIdstringпоставлятьпоставлятьИдентификатор позиции, соответствующий entityId
symbolstringпоставлятьпоставлятьторговая пара
positionSidestringпоставлятьпоставлятьLONG / SHORT / BOTH и другие направления позиции
statusstringпоставлятьпоставлятьСтрока с числовым статусом позиции, см. обзор запроса
leverageintegerпоставлятьпоставлятьИспользуйте несколько
marginModestringпоставлятьпоставлятьЧисловая строка перечисления «1» для полной позиции, «2» для изолированной позиции.
quantitystringпоставлятьНет в наличииТекущее количество позиций
entryPricestringпоставлятьпоставлятьСредняя цена открытия сохраненных позиций
marginstringпоставлятьНет в наличииТекущая сумма маржи позиции, а не весь баланс контрактного кошелька пользователя.
maxQuantitystringНет в наличиипоставлятьМаксимальное количество позиций, зафиксированных в этой исторической позиции
closeQuantitystringНет в наличиипоставлятьСовокупное количество позиций, закрытых в течение жизненного цикла исторической позиции.
closePricestringНет в наличиипоставлятьСохраненная средняя цена закрытия
pnlstringНет в наличиипоставлятьИсторическая позиция прибылей и убытков; не объединяйте его с транзакцией realizedPnl для простого повторения и накопления
roestringНет в наличиипоставлятьПропорциональное значение доходности исторической позиции, не умноженное на 100; например, "0.043" представляет собой 4.3%, "-0.05" представляет собой -5%
fundingFeeAccumstringпоставлятьпоставлятьНакопленная комиссия за финансирование с сохранением исходного символа и точности.
openedAtintegerпоставлятьпоставлятьВремя открытия позиции, миллисекунды
updatedAtintegerпоставлятьНет в наличииВремя обновления текущей позиции, миллисекунды
closedAtintegerНет в наличиипоставлятьВремя закрытия, миллисекунды; используйте это поле для фильтрации времени исторической позиции

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

Текущая позиция не имеет цены маркировки в реальном времени, плавающей прибыли и убытка в реальном времени, цены ROE или цены ликвидации в реальном времени. Он отражает сохраненный статус позиции и не может использовать поля времени обновления и маржи для получения текущих результатов контроля рисков в режиме реального времени.

Пример конверта ответа

Это иллюстративная пустая страница, а не образец завершенной сделки. В приведенных выше таблицах полей для конкретных ресурсов описываются заполненные items[].data.

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

Источник и связанные руководства