Pricing Models - Nodes
Once the filtered market data order book is constructed, the order book is processed by a series of individual pricing nodes. Each node contains specific pricing logic and will update the price if the conditions within the node trigger a change.
Base Spreads
Market Width Minimum Spread
Market Width Tightening Parameters
Benchmark Minimum Spread Configuration
Pricing Wide Spread Suppression
Arb Protection Parameters
Price Widening Functionality
Skew
The following nodes are important protective measures, please speak to a member of the Mahi Team about configuring protections in your pricing
Order book construction
The order book is constructed from market data consumed from configured LPs for VWAP construction, filters are applied to this rate before the nodes. Reference markets are configured at
reference.referencePriceMarketSelectors
Base Spreads
These are the minimum allowed spreads in operation if there are no other considerations in play.
Base spreads can be affected by volatility, liquidity, exceptionally high risk, market directional movement, scheduled news, and benchmarking.
Pricing Models - Spread Configuration
Market Width Minimum Spread
Configures minimum model spreads relative to the tightest LP spread from the benchmark markets, this is defined as a multiple of the widened spread.
Configuration at pricing.marketWidthMinimumSpreadParameters
Market Width Tightening Parameters
Optionally configures base spread tightening relative to the aggregate spread of a set of markets for the given instrument. This overrides the model's configured base spread to be tighter based upon the parameters (by a multiple of the observed spread floored at a multiple of the original base spread). The model then adjusts all base spread relative skew/widening parameters accordingly and remaining tiers are widened proportionally.
Configuration at pricing.marketWidthTighteningParameters
Benchmark Minimum Spread
Widens part or all of the order book if tighter than the reference spreads, this is similar logic to Market Width Minimum Spread but for the entire order book. Allows the pricing model to compare each level of the stack to given quantities from a set of reference markets
Configuration at pricing.benchmarkMinimumSpreadLogicParameters
WIDE SPREAD SUPPRESSION
This is a critical protective measure in preventing the stopping out of clients. Suppresses publication of wide spreads in one of 3 ways:
Turn pricing indicative
Will not send out a new price update if the quote is more than a specified multiple of the base spread; instead it will wait until the spreads are back within the acceptable range
Note: not all bridge providers can cope with this.
Spread Cap TOB
A spread ceiling on the TOB price limiting the maximum spread value, the remainder of the stack will be removed
Spread Cap Full Stack
A spread ceiling capping the full stack at the WSS limit
Configuration in the Channel explorer (or distribution.node.wideSpreadSuppression.config)
Arb Protection
This is to avoid presenting an arb to market by maintaining a minimum distance from the mid, opposing or same side of specified LPs.
Configuration at pricing.arbProtectionParameters and pricing.arbProtectionParametersForCrosses
ANTI-SPOOF
This is to combat spoofing of the source rates, which is particularly important in illiquid conditions. If an abrupt move is seen in a bid or offer, the system can wait until that bid or offer is confirmed (by a given number of ticks) before incorporating into the stack for rate formation. When that price is incorporated, it is ‘slow’ as an additional protection.
pricing.antiSpoofMovingAverageParameters
Net open positions
Pricing models can also have optional inbuilt protections for net open position breaches, forcing pricing to go indicative if a limit is neared. This is configured so that the NOP-increasing side of the price becomes indicative to prevent NOP breaching the limit.
pricing.netOpenPositionIndicativePriceThreshold
Price Widening functionalities
There are multiple sources of widening in the system:
Benchmark Widening
As liquidity changes in the external stack, this feature allows for the different elements of the stack to widen independently of each other. This is very important to strike the right balance between being competitive and still making profit in the different sizes being shown to customers. Each size needs to be managed directly as average widening applied across the whole stack will not strike the right balance.
Market Width Spread Adjustment
This takes a weighted average of recent spreads from or near the top of book and allows us to apply as a multiplier to the whole stack. This provides protection in the event of unanticipated market changes.
Anti Spoof Moving Average Widening
This is to combat spoofing of the source rates, which is particularly important in illiquid conditions. If a bid or offer is abruptly moved by more than the configured threshold, the system will wait until that bid or offer is confirmed (by a configured number of ticks) before incorporating that price into the stack for rate formation.
Marginal Risk Widening
The system can be configured to widen the risk increasing side of all prices when the VaR or equivalent position exceeds the specified limits.
Signal Widening
Each signal used in the system can apply skew and/or widening in a configurable way. For example, the short term trend signal can be used to either skew the price up one market step size, or just widen the offer one market step size.
All of this is fully automated and deterministic. Mahi has the ability to back test alternative configurations before applying to the active pricing model.
Volatility Widening
This shows a ladder of volatility quantiles to widening factors and how they decay.
Widens the published bid/offer to prevent it from being closer than the configured amount to the VWAP offer/bid in the regular amount across the configured markets (or all reference price markets if markets is null)
Configuration at pricing.widening.volatility.factors.X
News Widening
The news widening node widens the spreads prior to scheduled news events. Once the news event kicks in, volatility widening maintains width.
There are 3 configurations that control the News Widening node:
pricing.econNewsTightMillisAfter
Maps the news event weight to the length of time the widening should persist for. The value equal to or otherwise below the news event’s weight is selected.pricing.econNewsWideMillisBefore
Maps the news event weight to how soon to before an event takes place to begin widening. The value equal to or otherwise below the news event’s weight is selected.pricing.econNewsWideningFactors
Retrieves the mapping between news event weight and news widening factor. The value equal to or otherwise below the highest active news event’s weight is selected.