When back testing an algorithm that relies upon short selling certain stocks, how to limit the short selling so that the back-test results still remain reliable? What kind of controls are generally put on such algorithms during actual trading and how to simulate such controls while backtesting?
You should make your borrow cost sufficient to dissuade unlimited short selling. In practice, each short would require you to borrow shares from your broker. This is usually handled when computing transaction cost. You should account for this in your trading algorithm or in the factor model itself. A simple method would make shorts some N% more expensive than longs. In practice, this could kill your projected returns. You could probably estimate this factor by looking at historical short interest on the stock. If everyone is trying to short it, the cost to borrow is going to be high.
I am also interested in the answer to this question, and would like to expand a little bit on it as well.
First of all, let me add some value in terms of a partial answer:
There are restrictions on when short selling is allowed. According to the SEC, and the "Alternative Uptick Rule" short selling is not allowed on "a stock that has dropped more than 10 percent in one day compared to the closing price on the previous day". This is certainly something that should be taken into account in your backtests.
What I have found more difficult to backtest is the lack of shortable shares availability that happens from time to time.
Can anyone offer advice as to when there may be a lack of availability for shortable shares?