In an equities stat arb model that I run live, I have coded rules for managing orders which I would like to put out here for the forum to discuss and perhaps improve.
A little about the model: it is time sensitive and places the execution of the trade above, trying to get price improvement. However, having said this, I still try and make my executions rules as efficient as possible to reduce slippage where I can.
These are the rules of my auto order execution algo, if you have some suggestions I would be glad to hear them. The following are simplified to buying orders only.
1. If spread is = 1-15 cents wide;
then limit order to bid at 1/2 the spread for 5 seconds;
if does not execute, then replace with limit order to 1/2 the spread of last limit and the ask for 5 seconds;
repeat until spread is < 1 cent, then replace with limit order to take liquidity.
2. If spread is = 16-30 cents wide;
then limit order to bid at 1/3rd of the spread for 5 seconds;
if does not execute, then replace with limit order to 1/3rd the spread between the last limit and the ask for 5 seconds;
repeat until spread is < 1 cent, then replace with limit order to take liquidity.
ect...
e,g 1. if market 50.00 x 50.15, bid 50.07 for 5 sec, then 50.12 for 5 secs, then 50.14 for 5 secs.
e,g 2. if market 80.00 x80.30, bid 80.10 for 5 secs,then 80.17, ect...
As you can see the larger the bid ask spread, the more willing I am to work the order. Any one else willing to share?
A little about the model: it is time sensitive and places the execution of the trade above, trying to get price improvement. However, having said this, I still try and make my executions rules as efficient as possible to reduce slippage where I can.
These are the rules of my auto order execution algo, if you have some suggestions I would be glad to hear them. The following are simplified to buying orders only.
1. If spread is = 1-15 cents wide;
then limit order to bid at 1/2 the spread for 5 seconds;
if does not execute, then replace with limit order to 1/2 the spread of last limit and the ask for 5 seconds;
repeat until spread is < 1 cent, then replace with limit order to take liquidity.
2. If spread is = 16-30 cents wide;
then limit order to bid at 1/3rd of the spread for 5 seconds;
if does not execute, then replace with limit order to 1/3rd the spread between the last limit and the ask for 5 seconds;
repeat until spread is < 1 cent, then replace with limit order to take liquidity.
ect...
e,g 1. if market 50.00 x 50.15, bid 50.07 for 5 sec, then 50.12 for 5 secs, then 50.14 for 5 secs.
e,g 2. if market 80.00 x80.30, bid 80.10 for 5 secs,then 80.17, ect...
As you can see the larger the bid ask spread, the more willing I am to work the order. Any one else willing to share?