void ImportTicks(JForex_Data_Files file)
{
StreamReader streamReader = new StreamReader(file.FilePath);
FileStream outStream = new FileStream(file.FileTargetPath, FileMode.Create);
BinaryWriter binaryWriter = new BinaryWriter(outStream);
DateTime time = DateTime.MinValue;
int volume = 0;
List<double> reccord = new List<double>();
int count1MinBars = 1;
int totalVolume = 0;
string dateFormat = "yyyy.MM.dd HH:mm:ss";
char fieldSplitter = ',';
IFormatProvider formatProvider = System.Globalization.CultureInfo.InvariantCulture;
string line = "";
try
{
DateTime tickTime;
double bid;
while (!streamReader.EndOfStream)
{
line = streamReader.ReadLine();
if (line.StartsWith("Time"))
continue; // Skips annotation line.
string[] data = line.Split(new char[] { fieldSplitter });
DateTime t = DateTime.ParseExact(data[0], dateFormat, formatProvider);
tickTime = new DateTime(t.Year, t.Month, t.Day, t.Hour, t.Minute, 0);
bid = StringToDouble(data[2]);
if (tickTime.Minute != time.Minute || volume == 0)
{
if (volume > 0 && !IsWeekend(time))
{
FilterReccord(reccord);
SaveReccord(binaryWriter, time, volume, reccord);
count1MinBars++;
}
time = tickTime;
volume = 0;
reccord.Clear();
reccord.Add(bid);
}
else if (reccord.Count > 0 && bid != reccord[reccord.Count - 1])
{
reccord.Add(bid);
}
volume++;
totalVolume++;
}
if (volume > 0 && !IsWeekend(time))
{
FilterReccord(reccord);
SaveReccord(binaryWriter, time, volume, reccord);
count1MinBars++;
}
}
catch (Exception excaption)
{
MessageBox.Show(excaption.Message);
}
streamReader.Close();
binaryWriter.Close();
outStream.Close();
volume--;
totalVolume--;
count1MinBars--;
SetInfoText(file.Symbol + " " + Language.T("Ticks") + " - " + (Language.T("Ticks")).ToLower() + ": " + totalVolume.ToString()
+ " - 1M " + (Language.T("Bars")).ToLower() + ": " + count1MinBars.ToString() + Environment.NewLine);
}