16 using Newtonsoft.Json;
17 using Newtonsoft.Json.Linq;
20 using Newtonsoft.Json.Converters;
21 using Newtonsoft.Json.Serialization;
34 [JsonProperty(
"operator"), JsonConverter(typeof(StringEnumConverter), typeof(DefaultNamingStrategy))]
46 throw new ArgumentNullException(nameof(targetValue),
Messages.
Constraint.ConstraintTargetValueNotSpecified);
53 public bool IsMet(
string jsonBacktestResult)
55 if (
string.IsNullOrEmpty(jsonBacktestResult))
57 throw new ArgumentNullException(nameof(jsonBacktestResult), $
"Constraint.IsMet(): {Messages.OptimizerObjectivesCommon.NullOrEmptyBacktestResult}");
60 var token = JObject.Parse(jsonBacktestResult).SelectToken(
Target);
67 token.Value<
string>().ToNormalizedDecimal(),
76 return $
"{Target} '{Operator}' {TargetValue.Value}";