Docs / Pricing

Markup profiles

Set spreads per platform with XiroLink markup profiles: default markups, per-symbol rules, multipliers for news, spread limits and the crossed-price guard.

A markup profile turns the raw price from your makers into the price a platform receives. Each taker has one profile, so different platforms can price differently from the same feed.

Create a profile

Go to Markups and create a profile with a Name (for example Retail or VIP) and an optional Description.

To start from an existing profile, choose it under Copy from: the new profile starts with its default markup, multipliers and every rule. Choose Start empty otherwise.

The default markup

Default markup, points applies to every symbol that has no rule of its own:

  • Bid (lowered by): points taken off the bid
  • Ask (raised by): points added to the ask

Leave it empty and symbols without a rule are sent at the raw price.

A point is the smallest price step of the symbol: 0.00001 for EURUSD with 5 digits, 0.01 for XAUUSD with 2. A markup of 5 points on each side of EURUSD widens its spread by 10 points, which is 1 pip.

Rules for symbols

Add a rule to replace the default for some symbols. Apply to sets its reach: One symbol, a Security such as Metals, or All symbols.

Each rule has a Markup type:

Type How it works
Points Points taken off the bid and added to the ask. Use Each side for the same amount, or Different bid and ask to set them apart.
Percent of spread Widen spread by a percentage of the raw spread, split evenly between bid and ask. From -100% to 1000%.
Price units A price amount taken off the bid and added to the ask, such as 0.10 on gold.

Spread limits

Spread limits, points set an optional Minimum and Maximum spread for a rule. They apply after the markup:

  • If the spread is already inside the limits, nothing changes.
  • If it is outside, the bridge rebuilds the price around the mid at the limit, rounding the ask up to the next point. The difference is always in your favour, never the client's.

Multipliers for news

Every profile has three Multipliers, set to ×1, ×2 and ×4 by default. One is active at a time, and every markup in the profile, including the default, is multiplied by it.

Before a release, switch the profile to its second multiplier and every spread doubles at once. Switch back when it is over. The change takes effect on the next price.

Assign the profile to takers

In the profile, choose Assign taker and pick the takers that should use it. A taker has one profile at a time, and assigning it to another profile moves it. The latest prices are resent straight away, so clients see the new spreads immediately.

A taker with no profile, or with a profile that is not Active, receives raw prices.

Check before you save

Live preview shows every symbol in the profile with its raw bid and ask, the bid and ask that will be sent, and the spread, refreshed every two seconds. It warns you when a spread would become more than ten times wider, which usually means a markup typed in pips instead of points.

The crossed-price guard

A markup must never push the bid above the ask. On every price, for every taker, XiroLink checks the result:

  • If the markup would cross the price, the raw price is sent instead for as long as that lasts.
  • If the source price is already crossed, the bridge sends a one point spread around the mid.

The profile shows how often the guard stepped in since the bridge started.

Import and export rules

Edit many rules at once in a spreadsheet: export the profile's rules as CSV, change them, and import the file back. The columns are:

csv
symbol,type,bid,ask,spread_min_pts,spread_max_pts,enabled
EURUSD,points,5,5,,,yes
XAUUSD,price,0.10,0.10,20,80,yes
GBPUSD,percentage,20,,,,yes

type is points, asymmetric (different bid and ask points), percentage or price. For percentage, put the percentage in bid. enabled is yes or no.

After the markup

Each taker symbol can also have its own processing, set in Symbols on the taker's symbol: a Spike filter that drops a price which jumps too far from the last one, Tick boost that smooths a slow feed with in-between prices, and a Delay. They run after the markup, in that order: spike filter, tick boost, delay.

Something unclear or out of date? Email [email protected].