At Quantopian world headquarters, we've been having some interesting discussions about the different kinds of data sources it might be useful to make available to algorithms, and what the use of those data sources would look like within an algorithm's code. We'd love to hear other other people's thoughts about this.
Right now, we've only got one data source data source which gives you the closing price for each time interval (minute, for full backtests, or day, for quick backtests running in the IDE).
One of our users suggested that it would be interesting to have additional data sources representing commonly used algorithm factors (a.k.a. signals). We think that's a neat idea. What factors would you like to see available within your algorithm as a data source?
The next question is, assuming that additional data sources such as factors are available in your algorithm, how would you like to get them?
Would you like all data sources to continue to go through handle_data, with a new field added to every event to show what kind of source it is? Different kinds of events would have different fields, so you'd have to write handle_data to look at fields conditionally based on the type of source.
Or would you like to be able to write different handle_* functions for the different data sources, with function decorators indicating what source should be fed into each function?
Or is there some other way you think it would be more useful to get the data?