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

Бессрочные заказы

Бессрочные заказы: Интеграция с 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.*;

listCurrentPerpetualOrders

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

import com.sixmm.agent.model.CurrentPerpetualOrdersRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;
CurrentPerpetualOrdersRequest request = new CurrentPerpetualOrdersRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.orderCategory = "NORMAL";
request.symbol = "BTCUSDT";
PerpetualResponse response = client.listCurrentPerpetualOrders(request);
System.out.println(response.data.items.size());
System.out.println(response.data.hasMore);
System.out.println(response.data.nextCursor);

Поля запроса

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

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

listPerpetualOrderHistory

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

import com.sixmm.agent.model.PerpetualOrderHistoryRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;
PerpetualOrderHistoryRequest request = new PerpetualOrderHistoryRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.orderCategory = "NORMAL";
request.symbol = "BTCUSDT";
request.endTime = System.currentTimeMillis();
request.startTime = request.endTime - 3_600_000L;
PerpetualResponse response = client.listPerpetualOrderHistory(request);
System.out.println(response.data.items.size());
System.out.println(response.data.hasMore);
System.out.println(response.data.nextCursor);

Поля запроса

ПолеJava типНеобходимыйЗначение
orderCategoryStringДаNORMAL или CONDITIONAL; условные запросы требуют явных пользователей.
platformUserIdsjava.util.List<String>Условный1–100 уникальных публичных идентификаторов; требуется для исполнения и условных ордеров. Опустить поддерживаемые запросы для прямой области действия игрока; [] недействительно.
symbolStringНетДополнительный фильтр торговых пар.
orderIdStringНетОбычный идентификатор заказа; не номер заказа на передачу партнера.
conditionIdStringНетУсловный идентификатор заказа; не смешивайте с orderId.
clientOrderIdStringНетСсылка на ордер торгового клиента, а не agentOrderNo.
sideStringНетФильтр BUY / SELL.
statusStringНетСтатус конкретного ресурса; см. ссылку на статус.
startTimeLongНетВключительно миллисекунды Unix; используйте фиксированное окно истории UTC.
endTimeLongНетЭксклюзивные миллисекунды Unix.
limitIntegerНетПо умолчанию 500; 1–1000.
cursorStringНетИспользуйте возвращенный nextCursor с неизмененными фильтрами; остановитесь, когда hasMore имеет значение false.

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

Обыкновенные заказы: текущие и история

Текущий: orders/current + orderCategory=NORMAL; История: orders/history + orderCategory=NORMAL.

Поле dataтипЗначение и сфера применения
symbolstringТорговая пара, например BTCUSDT
orderIdstringИдентификатор обычного заказа платформы
orderCategorystringИсправлено NORMAL
clientOrderIdstringНомер клиентского заказа, предоставленный источником заказа на транзакцию; это не то же поле, что и для перевода средств продавцу agentOrderNo
orderTypestringТип делегата, например LIMIT, MARKET; фактическое значение перечисления имеет преимущественную силу
sidestringНаправление покупки и продажи BUY / SELL
statusstringОбычный статус заказа, см. обзор запроса
timeInForcestringСрок действия/стратегия исполнения сделки, например GTC, IOC, FOK; интерпретируется в соответствии с фактическими значениями
pricestringДоверенная цена; его можно опустить, если цена не указана, и цена рыночной сделки не будет дополняться самостоятельно.
quantitystringИсходное количество заказа
filledQuantitystringСумма транзакции
remainingQuantitystringНеоперированное количество; текущий запрос принимает количество — filledQuantity, а исторический запрос принимает значение исторической записи
avgFilledPricestringСредняя цена сделки завершенной детали; не может быть никакой ценности, если оно не завершено
reduceOnlybooleanСтоит ли только сокращать позиции
closeOnlybooleanИспользуется ли он только для закрытия позиций
makerOnlybooleanВыполнять ли только как Maker
leverageintegerИспользуйте многократное кредитное плечо; Исторический обычный порядок имеет источник, а текущий обычный порядок не создает эту ценность.
marginModestringМаржинальный режим; Исторический обычный порядок в настоящее время возвращает числовую строку перечисления, например “1”, “2”; текущий обычный заказ не указан
createdAtintegerВремя создания ордера, миллисекунды; используйте это поле для фильтрации исторического времени заказа
updatedAtintegerВремя обновления записи делегата, миллисекунды

История заказов включает прекращенные обычные заказы. Каждую запись нельзя считать полностью завершенной только на основании имени интерфейса. Текущая страница заказа — это запрос текущего статуса, а не поток событий заказа.

Условные ордера: текущие и история

Текущий: orders/current + orderCategory=CONDITIONAL; История: orders/history + orderCategory=CONDITIONAL. Оба требуют явного platformUserIds.

Поле dataтипзначение
symbolstringторговая пара
conditionIdstringID условных ордеров, независимый от обычных orderId
orderCategorystringИсправлено CONDITIONAL
generatedOrderIdstringОбычный идентификатор ордера, формируемый после срабатывания; может быть опущено, если не сгенерировано
clientOrderIdstringКоличество условных заказов клиента, выводится, если оно существует.
sidestringBUY / SELL
orderTypestringТип ордера после триггера, интерпретируемый в соответствии с фактическим значением
triggerTypestringТип триггерного правила, поясняемый фактическим перечислением источников
workingTypestringТип задания/источник цены, который запускает цену, интерпретируется как фактическое перечисление.
timeInForcestringСрок действия/стратегия исполнения ордера после срабатывания
pricestringЦена ордера после срабатывания, выводится, когда источник имеет значение.
quantitystringУсловный объем заказа
triggerPricestringтриггерная цена
reduceOnlybooleanСтоит ли только сокращать позиции
closePositionbooleanИспользовать ли семантику закрытия полной позиции, нельзя путать с closeOnly как с тем же полем.
leverageintegerИспользовать несколько значений, выводить, если они ненулевые
marginModestringЭтот класс возвращает CROSS / ISOLATED, который представляет собой числовую строку, отличную от обычных исторических ордеров/позиций.
statusstringСостояние условного одиночного триггера, см. обзор запроса.
triggerStatusstringТекущая реализация использует то же значение условного статуса, что и status.
createdAtintegerВремя создания условного ордера, миллисекунды; исторические условия фильтруются к этому времени
updatedAtintegerВремя обновления, вывод при наличии значения, миллисекунды
deletedAtintegerУдалить время отметки, вывести при наличии значения в миллисекундах; это не единое поле времени транзакции/отмены

Условные заказы не предоставляют filledQuantity, remainingQuantity, avgFilledPrice для обычных заказов. Если вам нужен статус транзакций обычных заказов после их запуска, запрашивайте обычные заказы/транзакции через generatedOrderId и не делайте вывод об объеме транзакции на основе статуса условного заказа.

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

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

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

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