Skip to content
Contact us

Building an executable fixed income trade list from an optimizer

Author:

Principal Solutions Engineer, SimCorp

This article shows how fixed income optimization builds liquidity filters, inventory caps, and transaction costs into the problem itself, so the trade list a desk gets is one it can actually execute.

This article is part of SimCorp's practitioner's guide to fixed income optimization. Read the full whitepaper for the complete framework.

Read the report here

Dealing with liquidity and transaction costs

An optimal portfolio earns its return once the desk can actually put it on. When the trade list lands ready to execute, the intended positions reach the market as designed, without manual workarounds or names that can't be filled. Fixed income asks more of this process than equities. Since markets are less transparent, liquidity varies enormously across names; and bonds carry trade-sizing constraints that equities don't. Handling the realities of liquidity, dealer inventory, minimum denominations, and transaction costs inside the problem can lead to more executable portfolios.

Filtering for liquidity before you optimize

The simplest and most effective approach to liquidity is to remove illiquid bonds from the investment universe before the optimizer ever sees them. This type of filtering is often based on one or more observable or proxyable bond characteristics, such as bid-ask spread. You can build your own liquidity measure from scratch or use an existing one: Axioma's Liquidity Score for fixed income, for example, blends amount outstanding, option-adjusted spread (OAS), bid-ask spread, and traded volume into a composite score (0-10) ranging from very illiquid to highly liquid. It is deployed natively alongside Axioma's Fixed Income Factor Model and can be easily integrated into the Axioma Portfolio Optimizer, where it can be used to systematically filter illiquid bonds out of a proposed optimal trade list.

This is preferable to soft-penalizing illiquid bonds inside the optimizer, because it avoids the situation where a sufficiently attractive alpha signal overrides a liquidity concern the manager would never actually accept in practice.

Capping trade sizes against dealer inventory

Liquidity filtering narrows the universe before the optimizer runs. The next constraint governs how much of any single bond it can buy once trading begins. Where dealer inventory data is available, purchase sizes can be capped as a function of the amount available for each bond. A common approach is to allow purchases of no more than a fixed percentage of what is on offer, for example, 25 percent, leaving the remainder as a buffer to prevent the optimizer recommending a trade that would consume the entire inventory.

This constraint is bond-specific and changes with each rebalancing cycle as inventory levels shift, so it needs to be refreshed with each run rather than set once and forgotten.

Respecting minimum denominations and lot sizes

Unlike equities, bonds trade in fixed minimum denominations. An optimizer that ignores this will recommend trades that are not executable as stated.

The fix is to set each bond's trading threshold equal to its minimum denomination, ensuring that any recommended trade meets the minimum size requirement. Related to this, an upper bound on the total number of names traded in each rebalancing keeps the final trade list operationally manageable, which is particularly relevant for strategies that rebalance frequently or have constrained execution resources.

Controlling costs: Turnover, spreads, and market impact

With the trade list now constrained to tradable lot sizes, the remaining question is what those trades cost. Transaction costs can be addressed at varying levels of sophistication depending on the data and solver capabilities available. The simplest approach is an upper bound on turnover (for example, buys plus sells). This will implicitly limit costs and is easy to interpret and monitor over time.

A more direct approach uses bid-ask spreads to approximate trading costs, either linearly or in piecewise linear form. A simple linear approximation scales half the bid-ask spread by the size of each trade and includes this in the objective function as a cost to be minimized alongside alpha maximization.

For strategies where market impact is a meaningful concern, the square root law provides a well-supported empirical model: impact cost scales with asset volatility and the square root of the participation rate. This produces a non-linear cost function, but modern second-order cone programming (SOCP) solvers handle it efficiently. The same solver architecture that enables tracking error constraints as second-order cone constraints can ingest fractional power cost curves without meaningful additional complexity.

A note on sequencing

These constraints interact. A tight turnover budget combined with strict lot-size thresholds and a limited number of permitted trades can collectively produce a very constrained problem, particularly in less liquid markets. It is worth testing the full constraint set against a range of rebalancing scenarios including periods of elevated market volatility when dealer inventories shrink and bid-ask spreads widen to understand where the framework is most likely to bind.

Download the full practitioner's guide

Related content

  • Privacy policy
  • Cookie Policy
  • Terms of Use
  • Trademark guidelines

Copyright © 2026 SimCorp A/S