void CheckLoadedData()
{
SetInstrumentDataStatusBar();
if (!Configs.CheckData)
return;
string errorMessage = "";
// Check for defective data
int maxConsecutiveBars = 0;
int maxConsecutiveBar = 0;
int consecutiveBars = 0;
int lastBar = 0;
for (int iBar = 0; iBar < Data.Bars; iBar++)
{
if (Data.Open[iBar] == Data.Close[iBar])
{
if (lastBar == iBar - 1 || lastBar == 0)
{
consecutiveBars++;
lastBar = iBar;
if (consecutiveBars > maxConsecutiveBars)
{
maxConsecutiveBars = consecutiveBars;
maxConsecutiveBar = iBar;
}
}
}
else
{
consecutiveBars = 0;
}
}
if (maxConsecutiveBars > 10)
{
errorMessage += Language.T("Defective till bar number:") + " " + (maxConsecutiveBar + 1) + " - " +
Data.Time[maxConsecutiveBar].ToString() + Environment.NewLine +
Language.T("You can try to cut it using \"Data Horizon\".") + Environment.NewLine +
Language.T("You can try also \"Cut Off Bad Data\".");
}
if (Data.Bars < 300)
{
errorMessage += Language.T("Contains less than 300 bars!") + Environment.NewLine +
Language.T("Check your data file or the limits in \"Data Horizon\".");
}
if (Data.DaysOff > 5 && Data.Period != DataPeriods.week)
{
errorMessage += Language.T("Maximum days off") + " " + Data.DaysOff + Environment.NewLine +
Language.T("The data is probably incomplete!") + Environment.NewLine +
Language.T("You can try also \"Cut Off Bad Data\".");
}
if (errorMessage != "")
{
errorMessage = Language.T("Market") + " " + Data.Symbol + " " + Data.DataPeriodToString(Data.Period) + Environment.NewLine + errorMessage;
MessageBox.Show(errorMessage, Language.T("Data File Loading"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
return;
}