Hey all!

Ever wanted to fetch symbols to trade each day from a remote server? Maybe you have a file uploaded to dropbox each day, or can call a web service to get a list of symbols to trade for the day. This is now all possible using our newest feature: universe selection!

In the attached algorithm I show how you can add a universe that will look to dropbox for both backtesting and live modes. This is all done through the AddUniverse method which is how we define a new universe. The general idea behind all of the AddUniverse methods is that they define how you choose your symbols. The main argument to these methods is a selection function that returns the symbols to be traded. Have a look at this example: AddUniverse("my-universe-name", Resolution.Daily, dateTime => {

return new List{"SPY", "GOOG"};

});

Now the example above is simple and contrived, but I think it shows some important things. First off, we give our universe a unique name, then we specify that this universe should 'fire' on a daily resolution, that is, at midnight on trading days. The final argument is our selection function that accepts a DateTime as the argument and returns an IEnumerable or IEnumerable. For those unfamiliar, IEnumerable can be viewed as a more generic version of List that only allows you to loop over it.

So in this example, our selection function will be called each trading day at midnight and will return the list of symbols that we want to trade for the next day! The engine will handle getting you all the data you need and will never remove data if you have open orders or open positions!

Check out the attached demo algorithm and let us know what you think!!

Author