/// <summary> /// Initializes a new instance of the <see cref="RuleBreach"/> class. /// </summary> /// <param name="window"> /// The window. /// </param> /// <param name="trades"> /// The trades. /// </param> /// <param name="security"> /// The security. /// </param> /// <param name="isBackTestRun"> /// The is back test run. /// </param> /// <param name="ruleParameterId"> /// The rule parameter id. /// </param> /// <param name="systemOperationId"> /// The system operation id. /// </param> /// <param name="correlationId"> /// The correlation id. /// </param> /// <param name="factorValue"> /// The factor value. /// </param> /// <param name="ruleParameter"> /// The rule parameter. /// </param> /// <param name="universeDateTime"> /// The universe date time. /// </param> /// <param name="description"> /// The description. /// </param> /// <param name="caseTitle"> /// The case title. /// </param> public RuleBreach( TimeSpan window, ITradePosition trades, FinancialInstrument security, bool isBackTestRun, string ruleParameterId, string systemOperationId, string correlationId, IFactorValue factorValue, IRuleParameter ruleParameter, DateTime universeDateTime, string description, string caseTitle) { this.Window = window; this.Trades = trades; this.Security = security; this.IsBackTestRun = isBackTestRun; this.RuleParameterId = ruleParameterId; this.SystemOperationId = systemOperationId; this.CorrelationId = correlationId; this.FactorValue = factorValue; this.RuleParameters = ruleParameter; this.UniverseDateTime = universeDateTime; this.Description = description; this.CaseTitle = caseTitle; }
internal IEnumerable <IRuleValue> GetAll(IRuleParameter ruleParameter) { var dataType = ruleParameter.DataType; if (!_dataLists.ContainsKey(dataType)) { throw new ArgumentException("Could not find a result of type " + dataType); } return(_dataLists[dataType].WhereValues(ruleParameter.Predicate)); }
public IRule BuildPresets(StaticRules rule, IRuleParameter parameter) { switch (rule) { case StaticRules.AllTasksIsCurrentIteration: return(AllTasksIsCurrentIteration()); case StaticRules.CheckTasksAreapath: return(CheckTasksAreapath(parameter as AreaPathParameter)); default: throw new Exception($"{nameof(RuleBuilder)}.{nameof(BuildPresets)}: Unknown type"); } }
public static BaseRule LoadFromDescription(string desc) { int typeNameIndex = desc.IndexOf("<PARAMS>"); string typeName = desc.Substring(0, typeNameIndex); //parameters are added upon instantiation BaseRule result = RuleFactory.GetInstance().CreateRuleInstance(Type.GetType("GeneticMarket.Logic.Rules." + typeName)) as BaseRule; //we only need to load parameter values int endParamIndex = desc.Length - 1; string paramsString = desc.Substring(typeNameIndex + 8, endParamIndex - typeNameIndex - 8); string[] paramsKeyValues = paramsString.Split('|'); for (int i = 0; i < paramsKeyValues.Length; i++) { if (paramsKeyValues[i].Length == 0) { continue; } string[] parts = paramsKeyValues[i].Split('='); string key = parts[0]; string value = parts[1]; IRuleParameter argObject = result.parameters[key]; bool isDouble = (argObject is DoubleRuleParameter); if (isDouble) { result[key] = double.Parse(value); } else { result[key] = int.Parse(value); } } return(result); }
public void AddParameter <T>(IRuleParameter <T> parameter) where T : class { _parameters.Add(parameter); }