/// <summary>
/// Loads, filters and saves all data files.
/// </summary>
private void LoadSaveData()
{
var files = Directory.GetFiles(Data.OfflineDataDir, "*.csv");
foreach (var file in files)
{
var symbol = GetSymbolFromFileName(file);
var period = GetPeriodFromFileName(file);
if (string.IsNullOrEmpty(symbol) || period == 0)
{
continue;
}
InstrumentProperties instrProperties = Instruments.InstrumentList[symbol].Clone();
var instrument = new Instrument(instrProperties, period)
{
DataDir = Data.OfflineDataDir,
MaxBars = Configs.MaxBars,
StartTime = Configs.DataStartTime,
EndTime = Configs.DataEndTime,
UseStartTime = Configs.UseStartTime,
UseEndTime = Configs.UseEndTime
};
int loadDataResult = instrument.LoadData();
if (instrument.Bars > 0 && loadDataResult == 0)
{
var stringBuilder = new StringBuilder(instrument.Bars);
for (int bar = 0; bar < instrument.Bars; bar++)
{
stringBuilder.AppendLine(
instrument.Time(bar).ToString("yyyy-MM-dd") + "\t" +
instrument.Time(bar).ToString("HH:mm") + "\t" +
instrument.Open(bar).ToString(CultureInfo.InvariantCulture) + "\t" +
instrument.High(bar).ToString(CultureInfo.InvariantCulture) + "\t" +
instrument.Low(bar).ToString(CultureInfo.InvariantCulture) + "\t" +
instrument.Close(bar).ToString(CultureInfo.InvariantCulture) + "\t" +
instrument.Volume(bar).ToString(CultureInfo.InvariantCulture)
);
}
try
{
var sw = new StreamWriter(file);
sw.Write(stringBuilder.ToString());
sw.Close();
TbxOutput.Text += symbol + period + " bars: " + instrument.Bars + Environment.NewLine;
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}
}
}