I'm backtesting a trading strategy, using free OHLC data from yahoo or google. I'm simulating friction by lopping a flat percentage (say 0.5%) off my returns for each day that I make a trade. Whats a good way to simulate slippage? I tried 'torturing' my returns, by pretending that I always buy at the day's high and sell at the day's low, but that was depressing. Is there a good compromise between naively assuming my trades execute at the day's close and 'torturing' my trades?
Slippage is multi-facetted, however, I think the main element to slippage is going to depend on the sophistication of your execution approach. Also, in your case there are 2 types of slippage:
The first approach may have the most execution slippage, but does not require HF order placement and replacement. The second is optimal in terms of execution costs, but projected target may deviate from actual close. The 3rd is tighter than the first (often) in terms of execution costs, but requires HF data/execution to do well.
If one attempts to buy in upward momentum you will be chasing price and will likely need to enrich your order significantly to get a fill (hence more slippage). (this is the most frequent scenario, since if you are buying there is probably reason for others to be as well).
If one is buying in downward momentum then the fill is incredibly easy to do, as the market is biased towards sellers. Hence a passive order (such as buying at the bid) or even bid - some spread is likely to be filled.
If price action is sideways passive (at the bid) or aggressive orders (crossing to ask) should both be effective and hence have low execution slippage.
If you are looking to do large size, then your execution algo will be something more complex where you make multiple buying (selling) entries into the market.
You can use MOC (Market on Close) orders to realize the closing price on NYSE or NASDAQ. The price you get will be the official close. You should check to see whether the free data you are getting contains the consolidated (last price across all venues) or primary (last price on the primary listing exchange for the stock) for its closing prices. If it contains consolidated prices then you could find that you realize different prices than your backtest. It should still be relatively close however.
Given that you're tradeing low volumes ($<1\%$ of volume, I take), I would not assume more than 1 bps slippage in your case.