private IStrategyConfiguration ReadConfiguration() { var strategyConfigurationType = TradeStrategyFactory.ConfigurationType; var strategyConfiguration = TradeStrategyFactory.GetConfiguration(); var configFileJsonObj = JObject.Parse(File.ReadAllText(ConfigFilePath)); try { foreach (var prop in strategyConfigurationType.GetProperties()) { var propName = prop.Name; if (propName == "Name") { continue; } var propValue = configFileJsonObj[propName]; var propType = prop.PropertyType; strategyConfigurationType.InvokeMember(propName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty, Type.DefaultBinder, strategyConfiguration, new object[] { propValue.ToObject(propType) }); } } catch (Exception ex) { _Log.Error("Failed to load strategy configuration", ex); return(null); } return(strategyConfiguration); }
private void ConfirmButton_Click(object sender, RoutedEventArgs e) { (Market as HistoricalMarket).LoadDataFromCsv(DataFilePath, "Security", "Currency"); var strategyConfiguration = ReadConfiguration(); TradeStrategy = TradeStrategyFactory.BuildStrategy(Market, strategyConfiguration); DialogResult = true; }