fintech-algorithms
Using a coding agent? Give it the skill: npx skills add IslamBaraka90/Fintech-Algorithms-Library What it does →

Volatility-Auction Reopening

Install and import#

bash
npm install fintech-algorithms
ts
import { volatilityAuctionReopening } from "fintech-algorithms/matching-engines-and-venue-logic/auctions/volatility-auction-reopening";

Signature#

volatilityAuctionReopening(inputs)

Determines the reopening price after a volatility halt, including whether the auction may conclude at all or must be extended. An auction that reopens outside the band simply extends rather than printing.

Parameters#

NameTypeNotes
inputsReopeningInputAuction orders with the halt reference, the permitted band, and the extension policy.

Returns#

{ status, price, extended, band, … }

The reopening price, or an extension decision with the reason.

Errors#

  • When the extension policy is unrecognised — throws

Complexity: time O(orders log orders), space O(prices).

Worked example#

executed Captured by running this function on the input its own test provides. Real output of real code — but not asserted against a published figure.

Input#

inputs
{
  "reference_price": 100,
  "dynamic_reference": 100,
  "dynamic_band_pct": 0.02,
  "static_reference": 98,
  "static_band_pct": 0.05,
  "potential_continuous_price": 103,
  "indicative_auction_price": 101.5,
  "extended_band_multiplier": 2,
  "executable_quantity": 500
}

Call#

volatilityAuctionReopening(inputs)

Returns#

object with 17 fields: model, reference_price, potential_continuous_price, dynamic_corridor, static_corridor, dynamic_breach, static_breach, triggered, …

{
  "model": "dual-corridor-volatility-auction-reopening",
  "reference_price": 100,
  "potential_continuous_price": 103,
  "dynamic_corridor": [98, 102],
  "static_corridor": [93.1, 102.9],
  "dynamic_breach": true,
  "static_breach": true,
  "triggered": true,
  "indicative_auction_price": 101.5,
  "executable_quantity": 500,
  "expanded_dynamic_corridor": [96, 104],
  "expanded_static_corridor": [88.2, 107.80000000000001],
  "inside_reopening_corridor": true,
  "reopened": true
}

Showing 14 of 17 fields.

Other exports#

This module also exports maximumExecutableVolumeAuction, minimumImbalanceTieBreak, openingCrossPrice, closingCrossPrice, calculate. Every module additionally exports run as an alias of its primary function, and a meta object carrying its catalog id, domain, family, shape and article URL.

Diagrams#

Volatility-Auction Reopening — system map

Calculation flow#

Volatility-Auction Reopening calculation flow
flowchart LR
    S1["Validate references percentages multiplier and quantit"]
    S2["Test potential price against both active corridors"]
    S3["Enter volatilityauction state on either strict breach"]
    S4["Test indicative price against both expanded corridors"]
    S5["Reopen remain nocross or extend with a reason"]
    S1 --> S2
    S2 --> S3
    S3 --> S4
    S4 --> S5
    S5 --> D{"endpoint equality nocross and onecorridoronly failure"}
    D --> O["reopened + diagnostics"]
    O --> A["Audit: Equality at any corridor endpoint is inside"]

How it works#

This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.

Read the article →

References#

The rest of the Auctions family#