We have noticed that we receive erroneous updates randomly during the course of a trading day. For example, with 5-minute GOOG.O we received the following update:
It's almost 4 points below the previous trade. Here's what it looks like in our chart:
Here's the relevant code to create the log file I referenced above:
// Create the platform session.
using ISession session = Sessions.GetSession();
// Open the session
session.Open();
HistoricalPricing.Sessions[] sessionArray = new HistoricalPricing.Sessions[]
{
HistoricalPricing.Sessions.normal,
};
// Create a Historical Pricing stream - specifying the desired 'intraday' interval
string symbol = "GOOG.O";
var stream = Summaries.Definition(symbol)
.Interval(Summaries.Interval.PT5M)
.Fields("DATE_TIME", "OPEN_PRC", "HIGH_1", "LOW_1", "TRDPRC_1", "ACVOL_UNS")
.Sessions(sessionArray)
.Count(1250)
.GetStream();
// Open a file for output
StreamWriter outputStream = new StreamWriter($"C:\\Users\\coryschmidt\\{symbol}Stream.txt");
stream.OnInsert((data, st) =>
{
outputStream.WriteLine($"INSERT: {DateTime.Now}");
Common.OutputTableToStream(data.Table, outputStream);
})
.OnUpdate((data, st) =>
{
outputStream.WriteLine($"UPDATE: {DateTime.Now}");
Common.OutputTableToStream(data.Table, outputStream);
})
.OnStatus((status, st) => outputStream.WriteLine($"STATUS: {status}"))
.OnError((error, st) => outputStream.WriteLine($"ERROR: {error}"))
.Open();
If I re-request the historical data the erroneous Low disappears.