I am currently (still) working on my first mechanical trading system and just revisiting how I manage liquidity and maximum position sizing, and whether there is a better way.
My trading system is a short term mean reversion system, with the average trade being 4 days. I trade only the ASX 300. I will be buying and selling in the opening auction. I am trying to design a liquidity filter / position size algorithm that will give me a good chance of getting filled with minimal affect on market price. These are my current thoughts:
// Initial liquidity filter
// Average turnover over a 30 day period is > $250K
Turnover = MA(close * Volume, 30);
Buy = Turnover > 250000;
// Position sizing
PositionSize = equity / 8; // Divide equity into 8 equal parcels.
MaxPositionSize = Turnover * 0.02; // Max position size is 2% of average turnover
if(MaxPositionSize < PositionSize) // Is maximum position size < parcel size?
PositionSize = MaxPositionSize;
My current strategy raises a few questions:
1. One of the problems with the above is how Turnover is calculated. Because there are infrequent days where extreme volume occurs this can significantly distort the Turnover figure, which leads to taking position sizes higher than desired. One way I have considered to overcome this is remove any data point that > 2 standard devs from the average. Does this seem a good solution, or are there better ways to handle such situations?
2. Would 2% of average daily turnover be a good number and ensure there is minimal affect on price?
3. Considering my average trade length is 4 days is an average daily turnover over a period 30 days sensible? Since I will be selling very quickly, one thought is that maybe I should only look at the last 5 days as an average?
4. Are there better ways to do what I am trying to achieve?
5. I did try another approach described by another forum which looked at: average daily turnover / average daily ticks = $per tick and then your maximum position size is a % of $per tick. In the case of the original poster, it was suggested 20%. I see the logic of the solution, however, in my opinion this approach has flaws, especially when dealing with stocks that only have a tick range of 2-3 per day, which a lot of <0.10 stocks do. What happens, is when you have a lower amount of ticks you are increase your % of the average daily turnover, to a maximum of 20% if there was only 1 tick.