I'm trading small and mid cap stocks early in their trading days on days of elevated volume. As a result, their spreads are often large (0.5-2%), and I'm struggling to close out my positions in a way that even approaches a VWAP benchmark I used for backtesting that assumes a 5% participation rate until filled. I'm trading on IB and have tried using IB's VWAP algorithm and Jefferies VWAP algorithm, but neither worked well. I have also tried IB's adaptive algorithm and a number of the other Jefferies algorithms with its volume participation algorithm (volpart) working best, but still far from the the VWAP benchmark. For some reason, with all of these algorithms, when I do get a fill, it is worse than those occurring around the same time the vast majority of the time. In particular, I mostly get fills on the far side of the spread and when I do get a fill on the near side of the spread it's because the stock price briefly moved through it such that the fill I get is actually poor compared to the others that also just occurred. I've noticed many of the best fills that I miss out on occur in dark pools, so perhaps it's unreasonable to think I could ever participate in that? Any general insight on my problem? Is my VWAP benchmark simply unreasonable? I was hoping to offload a lot of the work to a trading algorithm. Is there one (not necessarily from IB) that should do a better job? Baring that, what are some good ways to closeout in this scenario that keeps up with the volume? Would placing hidden orders at different levels throughout the order book (perhaps with pegged orders) and only crossing the spread when other trades are doing it be a good strategy? If so, are there any general heuristics to use on when to cross the spread and where to place the orders in the order book based on the other orders already in the book e.g. assume true volume is twice lit volume?