private void btnCreateSimulatedData_Click(object sender, RoutedEventArgs e) { var wnd = new wndCreateSimulatedData(); var res = wnd.ShowDialog(); if (!res.HasValue || !res.Value) { return; } if (HistoricalData.Any(p => p.Symbol.Equals(wnd.Symbol) && p.DataFeed.Equals(wnd.DataFeed) && p.Periodicity == wnd.Periodicity && p.Interval == wnd.Interval)) { MessageBox.Show("Historical data with same parameters already loaded", "Info", MessageBoxButton.OK, MessageBoxImage.Information); return; } var data = GlobalHelper.CreateSimulated(new SimulatedDataParameters { Symbol = wnd.Symbol, SecurityId = wnd.SecurityID, DataFeed = wnd.DataFeed, Periodicity = wnd.Periodicity, Interval = wnd.Interval, BarsCount = wnd.BarsCount, TicksCount = wnd.TicksCount, MarketLevels = wnd.MarketLevels, PriceMax = wnd.PriceMax, PriceMin = wnd.PriceMin, Slot = wnd.Slot }); ////optional //var questionResult = MessageBox.Show("Save simulated data to CSV file?", "Question", // MessageBoxButton.YesNoCancel, MessageBoxImage.Question); //if (questionResult == MessageBoxResult.Yes) //{ // var saveFileDialog = new SaveFileDialog(); // saveFileDialog.Filter = "CSV Files|*.csv"; // saveFileDialog.FilterIndex = 1; // saveFileDialog.RestoreDirectory = true; // saveFileDialog.FileName = data.ToString().Replace('/', '-'); // if (saveFileDialog.ShowDialog().Value) // { // using (var writer = File.CreateText(saveFileDialog.FileName)) // writer.Write(GlobalHelper.CreateCSV(data)); // } //} HistoricalData.Add(data); }
private void btnLoadFile_Click(object sender, RoutedEventArgs e) { var openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "CSV Files|*.csv|Text Files|*.txt"; var dialogResult = openFileDialog.ShowDialog(); if (!dialogResult.HasValue || !dialogResult.Value) { return; } var fileName = openFileDialog.FileName; if (String.IsNullOrEmpty(fileName)) { return; } var result = GlobalHelper.LoadDataFromCSV(fileName); if (result == null) { MessageBox.Show("Failed to load data from file " + fileName, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } else { if (HistoricalData.Any(p => p.Symbol.Equals(result.Symbol) && p.DataFeed.Equals(result.DataFeed) && p.Periodicity == result.Periodicity && p.Interval == result.Interval)) { MessageBox.Show("Historical data with same parameters already loaded", "Info", MessageBoxButton.OK, MessageBoxImage.Information); return; } HistoricalData.Add(result); } }