Does this bot require 2 exchanges for trading to happen? If yes is it possible to do trades with only 1?
Yes it requires 2 exchanges. Arbitrage means "buy at X on a market and sell at X+y on another market at the same time".
http://en.wikipedia.org/wiki/ArbitrageNo, it certainly doesn't require 2 exchanges. There are thousands of people doing cross-currency arbitrage as we write this. See:
http://en.wikipedia.org/wiki/Triangular_arbitrage This can be done in a single exchange.
And cross-currency arbitrage is getting quite popular in exchanges with several virtual and fiat currencies, like vircurex and btc-e.
A market is not synonymous with "an exchange". Each exchange has multiple markets (usually): USD-BTC, EUR-BTC, LTC-BTC, etc.