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;
        }