private void BtnExportStatClick(object sender, EventArgs e) { if (robotContext.dailyEquityExposure.Count == 0) { return; } var setupForm = new ExportSetupForm(); if (setupForm.ShowDialog() != DialogResult.OK) { return; } // выбрать файл if (saveFileDialog.ShowDialog() != DialogResult.OK) { return; } // сохранить кривую доходности и плечо using (var sw = new StreamWriterLog(saveFileDialog.FileName, false, setupForm.ExportEncoding)) { sw.WriteLine(string.Join(new string(setupForm.ColumnSeparator, 1), "Time", "Equity", "Leverage")); foreach (var rec in robotContext.dailyEquityExposure) { var timeStr = rec.a.ToString(setupForm.DateTimeFormat); var strEq = rec.b.ToStringUniform(); var strLev = rec.b.ToStringUniform(); if (setupForm.FloatSeparator == ',') { strEq = strEq.Replace('.', ','); strLev = strLev.Replace('.', ','); } var line = string.Join(new string(setupForm.ColumnSeparator, 1), timeStr, strEq, strLev); sw.WriteLine(line); } } }