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

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

Разрешение -- это процесс определения исхода события, а расчет -- процесс выплаты (или обнуления) позиций на основе этого исхода. Вместе они составляют завершающую стадию жизненного цикла каждого прогнозного рынка на 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 не устанавливается ни для одного пула.
  • Событие переходит в терминальное состояние, и дальнейшие действия невозможны.

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