/// <summary>
        /// Finds parameters to be used for optimization for the given Strategy and displays on UI
        /// </summary>
        private void OptimizationParameterDetails()
        {
            // Clear existing data
            OptimizationParameters.Clear();

            // Contains custom defined attributes in the given assembly
            Dictionary <int, Tuple <string, Type> > customAttributes = null;

            // Get Custom Attributes
            if (_selectedStrategy.StrategyType != null)
            {
                // Get custom attributes from the given assembly
                customAttributes = StrategyHelper.GetCustomAttributes(_selectedStrategy.StrategyType);

                foreach (KeyValuePair <int, Tuple <string, Type> > keyValuePair in customAttributes)
                {
                    var parameter = new OptimizationParameterDetail();

                    parameter.Index         = keyValuePair.Key;
                    parameter.Description   = keyValuePair.Value.Item1;
                    parameter.ParameterType = keyValuePair.Value.Item2;

                    // Add to observable collection to display on UI
                    OptimizationParameters.Add(parameter);
                }
            }
        }