Discretionary Pricing

Imported from previous forum

[ original email was from Ryan Pierce - rpierce@taltrade.com ]
Discretionary pricing is a feature that is being supported by several ECNs now, and has no defined support in the FIX 4.1 specification. I am suggesting as an agenda item of the upcoming ECNs and Exchanges Working Group meeting that we come to consensus on a recommendation for discretionary pricing, which we present to the Technical Committee for inclusion in FIX 4.2.

In its simplest form, discretionary pricing means that a seller wishes to display an order to market participants at one price, but is granting the executing system discretion to execute the order at a more competitive price.

For instance, someone may want to place a limit order to buy a stock at 90 1/2, but is really willing to pay up to a discretionary price of 90 5/8. The ECN / Exchange will display the order as 90 1/2, but should the ECN / Exchange get a sell order of 90 5/8, it would still match.

Two ways of doing this which come to mind would be:

  1. Add an optional DiscretionPx price field to orders. One could place a buy limit order with Price=90.5 and DiscretionPx=90.625

  2. Add an optional DiscretionDelta field to orders. One could place a buy limit order with Price=90.5 and DiscretionDelta=0.125

I believe Bloomberg posted a DiscretionDelta custom field on the FIX web site.

While both approaches are equally useful with limit orders, I’m thinking the latter may be better because it seems to be compatible with pegged orders. For instance, one could express, “I want a buy order with the displayed price pegged to the bid - 1/16, but I am willing to accept trades at 1/8 above my displayed price.” In this case, the PegDifference would express the -1/16 and the DiscretionDelta would express the 1/8.

Care needs to be taken in agreeing upon whether DiscretionDelta is signed or unsigned. For instance, an order to sell at 90 1/2 with 1/8 point discretion would result in a discretion price of 90 3/8. So one would need to define whether DiscretionDelta=-0.125 (signed) or DiscretionDelta=0.125 (unsigned).

Thoughts?