Перейти к основному содержимому

POST /api/v1/lmsr/trade

Выполнение сделки через LMSR (Logarithmic Market Scoring Rule) AMM. LMSR обеспечивает гарантированную ликвидность, поэтому сделки исполняются мгновенно по цене, определяемой автоматическим маркет-мейкером.

Аутентификация

Обязательно. Bearer-токен в заголовке Authorization.

Запрос

Параметры тела запроса

ПараметрТипОбязательноОписание
market_idint64ДаID рынка для сделки.
sidestringДаНаправление сделки: "buy_yes", "sell_yes", "buy_no" или "sell_no".
amount_typestringДа"spend" (сумма в центах) или "shares" (количество токенов для покупки/продажи).
amountintДаСумма в центах (если "spend") или количество акций (если "shares").
use_bonusboolНетЕсли true, для оплаты сделки используется бонусный баланс. По умолчанию false.

Пример

curl -X POST https://intotes.com/api/v1/lmsr/trade \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"market_id": 42,
"side": "buy_yes",
"amount_type": "spend",
"amount": 1000
}'

Ответ

200 OK

{
"cost_or_payout_cents": 1000,
"shares_delta": 1538,
"new_position_yes": 1538,
"new_position_no": 0
}

Поля ответа

ПолеТипОписание
cost_or_payout_centsintДля покупки: списанная стоимость в центах. Для продажи: полученная выплата в центах.
shares_deltaintКоличество купленных или проданных акций.
new_position_yesintОбновлённая позиция пользователя по токенам YES после сделки.
new_position_nointОбновлённая позиция пользователя по токенам NO после сделки.

Как работает ценообразование LMSR

Функция стоимости LMSR:

C(q) = b * ln(sum of e^(q_i / b))
  • Стоимость покупки = цена AMM * (1 + комиссия%)
  • Выплата при продаже = цена AMM * (1 - комиссия%)

Параметр b контролирует ликвидность рынка. Более высокое значение b означает большую ликвидность и меньшее влияние каждой сделки на цену. Процент комиссии настраивается на стороне сервера.

Ошибки

СтатусКодОписание
400INVALID_AMOUNTСумма должна быть положительным целым числом.
402INSUFFICIENT_BALANCEУ пользователя недостаточно средств для сделки.
409MARKET_PAUSEDТорговля на рынке в данный момент приостановлена.
409MARKET_RESOLVEDРынок уже разрешён.