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

Разрешение и расчет

Разрешение -- это процесс определения исхода события, а расчет -- процесс выплаты (или обнуления) позиций на основе этого исхода. Вместе они составляют завершающую стадию жизненного цикла каждого прогнозного рынка на Intotes.

Жизненный цикл события

Каждое событие проходит через определенный набор состояний:

new  -->  started  -->  paid
СостояниеОписание
newСобытие создано и открыто для торговли.
startedРеальное событие началось (например, начался матч). Торговля может быть ещё открыта в зависимости от конфигурации рынка.
paidВсе позиции рассчитаны и выплаты произведены.

Жизненный цикл пула

Внутри события каждый пул следует собственному жизненному циклу:

active  -->  closed (won_side установлен)  -->  settled
СостояниеОписание
activeПул активен и его рынки открыты для торговли.
closedИсход определен. won_side установлен. Новые сделки не принимаются.
settledВсе позиции в этом пуле выплачены.

Закрытие: установка исхода

Когда реальный исход известен, создатель события (или администратор) закрывает рынок, устанавливая won_side:

  • won_side = 0 означает, что победил первый исход (например, YES в бинарном рынке).
  • won_side = 1 означает, что победил второй исход (например, NO).
  • Для рынков с более чем двумя исходами более высокие индексы соответствуют дополнительным исходам.

Закрытие может выполняться на разных уровнях детализации:

ДействиеЭффект
Закрыть рынокУстанавливает исход для одного рынка внутри пула.
Закрыть пулУстанавливает исход для всего пула и всех его рынков.
Закрыть событиеЗакрывает каждый пул в событии, разрешая все рынки сразу.

После закрытия пула вся торговля в нем немедленно прекращается.

Расчет: выплата позиций

После закрытия пула и установки won_side система рассчитывает все открытые позиции:

Правила выплат

  • Держатели YES: Получают 10,000 копеек (100.00 RUB) за акцию, если исход YES побеждает. Получают 0, если YES проигрывает.
  • Держатели NO: Получают 10,000 копеек (100.00 RUB) за акцию, если исход NO побеждает. Получают 0, если NO проигрывает.

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

Пример

Предположим, трейдер держит 5 акций YES, купленных по средней цене $0.60 каждая:

  • Если YES побеждает: Выплата = 5 акций * 100.00 RUB = 500.00 RUB
  • Если YES проигрывает: Выплата = 0.00 RUB

Расчет прибыли и убытка

PnL для рассчитанной позиции вычисляется как:

PnL = settlement_payout - (amount * avg_price / 10000)

Где:

  • settlement_payout -- общая сумма, полученная при расчете (в копейках).
  • amount -- количество удерживаемых акций.
  • avg_price -- средневзвешенная цена приобретения акций (в копейках).
  • 10000 нормализует цену к базису выплаты за акцию.

Используя пример выше (5 акций YES по средней 0.60 RUB, YES побеждает):

PnL = 50000 - (5 * 6000 / 10000)
PnL = 50000 - 3000
PnL = 47000 копеек = 470.00 RUB прибыли

Если бы YES проиграл:

PnL = 0 - (5 * 6000 / 10000)
PnL = -3000 копеек = -30.00 RUB убытка

Запись ClosedPosition

При расчете система создает запись ClosedPosition для позиции каждого пользователя на разрешенном рынке. Эта запись включает:

ПолеОписание
pnlРеализованная прибыль или убыток от позиции, в копейках.
won_sideИндекс выигрышного исхода (0, 1 и т.д.), установленный при закрытии.
settlement_payoutОбщая полученная выплата.
amountКоличество удерживаемых акций.
avg_priceСредняя цена входа в позицию.

won_side = nil

Если won_side равен nil (null) в записи ClosedPosition, это означает, что позиция была закрыта трейдером вручную до разрешения события -- не через процесс расчета. В этом случае PnL отражает цену выхода трейдера, а не выплату по расчету.

Отмена события

В исключительных обстоятельствах событие может быть отменено вместо разрешения. При отмене события:

  • Все открытые позиции возвращаются по первоначальной стоимости. Каждый трейдер получает обратно ровно то, что потратил на приобретение акций.
  • Победитель не объявляется. won_side не устанавливается ни для одного пула.
  • Событие переходит в терминальное состояние, и дальнейшие действия невозможны.

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