If, like me, you're evaluating RightEdge and want a quick way to get data into it, you can use Google Finance API. Officially this has been discontinued but it seems to still work, though I think there are throttling limits which means it often only returns the past 1 year of data (to date).
This is how I got it working:
1. Create a copy of the .Net Sample labelled HistoricalDataRetrieval and open it in Visual Studio Community edition. It will want to upgrade the project.
2. Right-click the project and under Properties, change to target the .Net Framework 4.5.
3. In the HistoricalDataRetrieval.cs file, expand the IService Members section and add the following:
public bool SymbolSourceAvailable
{
get { return false; }
}
public ISymbolSource GetSymbolSource()
{
return null;
}
4. Now expand the IBarDataRetrieval Members section and replace the RetrieveData method with:
public List<BarData> RetrieveData(Symbol symbol, int frequency, DateTime startDate, DateTime endDate, BarConstructionType barConstruction)
{
if (frequency != (int)BarFrequency.Daily)
{
return new List<BarData>();
}
if (startDate == DateTime.MinValue)
{
// I think this is about as far back as Yahoo will go
startDate = new DateTime(1960, 1, 1);
}
// Build the URL to connect to Yahoo using the specified symbol.
string baseURL = "http://www.google.com/finance/historical?";
string url = baseURL + "q=" + symbol.Name + "&startdate=" + startDate.ToString("MMM") + "+" + startDate.ToString("dd") + "%2C" + startDate.ToString("yyyy") + "&output=csv";
// Make the web request.
WebResponse result = null;
WebRequest req = WebRequest.Create(url);
result = req.GetResponse();
Stream receiveStream = result.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
// Read the data from the stream.
StreamReader sr = new StreamReader(receiveStream, encode);
string pageString = sr.ReadToEnd();
sr.Close();
List<BarData> bars = new List<BarData>();
// Parse the request into bars.
PutRawDataInBarCollection(pageString, bars);
return bars;
}
5. Build the project.
6. Copy the DLL to the /plugins folder in the Right Edge program folder
7. In Right Edge, use Tools > Configure Services to add this service as a New service (may require Right Edge restart to pick up the new DLL I think)
8. The new service can be assigned to a folder in the watchlist and should now load data. I have it working here.
Hope this helps. I'm just a newbie to Right Edge so may have missed better ways of doing things. This was just a quick 'hack' to try to get up-and-running while I evaluate the platform.