How to capture the best of a ranking system?

I have this ranking system I am building. The last bucket (of 20) shows a CAGR of 25%. I know this isn’t that much, but I try to use as little rules as possible and as general a concept as I can.

The problem is this: when running this ranking in a simulated portfolio, I can’t get over 17-18%. I buy without any rule other than the ranking’s rules, in the same universe as the ranking itself, and I tried to sell using different ranks, but wasn’t able to get over that.

What can cause such distortion between results in ranking and in simulated portfolio?

Generally the difference is commissions and slippage in high turnover systems. Try setting all costs to 0 in your sim.

Got 0.5% slippage and 5$ commission with a turnover under 50%.

To run a Sim the same way you run the performance of a ranking system:

  1. Set the slippage & commission to 0 (unless you used slippage it the ranking system performance).
  2. use no buy rules.
  3. use a sell rule that sells all stocks every day (like just a 1, or Rank < 101).
    and set “Allow sold holdings to be re-bought at current rebalance” to yes.
  4. Set the rebalance period the same as in the ranking system performance.
  5. Set the number of stocks you buy to about the same as the number in a performance test bucket.
    (if you use the S&P500 universe and 20 buckets (5% in each bucket) then the Sim needs to buy 25 stocks.

There will still be slight differences. if I remember correctly the ranking system performance trades at the close price.

you can start with a Sim as described above and then copy it, make changes, and compare the differences.