I get data from Y! finance, using urllib2, and then use csv.DictParser to get the daily price series. From there I write code that takes in those series for a given basket, and buys/sells and keeps track of P&L, then use matplotlib to view results. Email's in my profile if you want to talk more.