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