1. Как выполняется сопоставление ордеров?
Система сопоставляет ордера с учетом их времени создания и цены. Ордера «Открыть длинную позицию» и «Закрыть короткую позицию» относятся к ордерам на покупку. Ордера «Закрыть длинную позицию» и «Открыть короткую позицию» относятся к ордерам на продажу.
Для ордеров на продажу, первым будет сопоставлен ордер, размещенный раньше всего и имеющий самую высокую цену. Для ордеров на покупку, первым будет сопоставлен ордер, размещенный раньше всего и имеющий самую низкую цену.
Когда цена первого ордера на покупку больше или равна цене первого ордера на продажу выполняется взаимозачет этих ордеров.
2. Что происходит после взаимозачета ордеров?
После выполнения взаимозачета для ордера на открытие позиции, открывается соответствующая позиция. Средняя цена позиции и цена расчетов обновятся соответствующим образом. После выполнения взаимозачета для ордера на закрытие позиции, закрывается соответствующая позиция. Средняя цена позиции и цена расчетов останутся прежними.
Средняя цена = Номинальная стоимость контракта * (Удерживаемые позиции + Новые открытые позиции) / (Номинальная стоимость контракта * Удерживаемые позиции / Первоначальная средняя цена позиции + Номинальная стоимость контракта * Новые открытые позиции / Средняя цена новых позиций)
Средняя цена новых позиций = Номинальная стоимость контракта * Новые открытые позиции / (Номинальная стоимость контракта * Цена исполнения контрактов 1 / Цена исполнения 1 + Номинальная стоимость контракта * Цена исполнения контрактов 2 / Цена исполнения 2 + ...)
Новые открытые позиции = Цена исполнения контрактов 1 + Цена исполнения контрактов 2 + ...
Пример: Последняя цена исполнения 600 USD. Пользователь удерживает длинную позицию по 6 контрактам на BTC. При этом средняя цена его позиции равна 500 USD.
Пользователь открывает длинную позицию еще по 5 контрактам со следующими параметрами:
Средняя цена позиции для этих 5 контрактов: 100 * 5 / (100 * 1 / 580 + 100 *1 / 570 + 100 * 3 / 560) = 565,89
Следовательно, новая средняя цена позиции будет равна: 100 * (6 + 5) / (100 * 6 / 500 + 100 * 5 / 565,89) = 527,95
Количество контрактов: 5 + 6 = 11