public void GivenTheHighProfitCoreSettings(Table table)
        {
            var config = table.Rows.First();

            var dto = new HighProfitsRuleParameterDto
            {
                Id = RuleRunner.RuleId,
                OrganisationalFactors = new[] { OrganisationalFactors.None }
            };

            dto.HighProfitPercentageThreshold = Convert.ToDecimal(config.ValueOrNull("ProfitThresholdPercent")) / 100;

            switch (config.ValueOrNull("PriceType"))
            {
            case "Close":
                dto.PerformHighProfitDailyAnalysis = true;
                break;

            case "Spot":
                dto.PerformHighProfitWindowAnalysis = true;
                break;
            }

            dto.WindowSize    = RuleParameterHelpers.ToWindowSize(config.ValueOrNull("ForwardWindow"));
            dto.ForwardWindow = RuleParameterHelpers.ToWindowSize(config.ValueOrNull("BackwardWindow"));

            _ruleRunner.RuleParameterDto.HighProfits = dto.CreateArray();
            _ruleRunner.RuleType = Rules.HighProfits;
        }
Ejemplo n.º 2
0
        public void GivenTheHighVolumeCoreSettings(Table table)
        {
            var config = table.Rows.First();

            var dto = new HighVolumeRuleParameterDto
            {
                Id = RuleRunner.RuleId,
                OrganisationalFactors = new[] { OrganisationalFactors.None }
            };

            var volumeType = config.ValueOrNull("VolumeType");

            if (volumeType == "Daily")
            {
                dto.WindowSize = RuleParameterHelpers.ToWindowSize("1 day");
                dto.HighVolumePercentageDaily = Convert.ToDecimal(config.ValueOrNull("VolumePercentage")) / 100;
            }

            _ruleRunner.RuleParameterDto.HighVolumes = dto.CreateArray();
            _ruleRunner.RuleType = Rules.HighVolume;
        }
Ejemplo n.º 3
0
        public void GivenTheWashTradeCoreSettings(Table table)
        {
            var config = table.Rows.First();

            var dto = new WashTradeRuleParameterDto
            {
                Id = RuleRunner.RuleId,
                OrganisationalFactors = new[] { OrganisationalFactors.None }
            };

            dto.WindowSize = RuleParameterHelpers.ToWindowSize(config.ValueOrNull("TimeWindow"));

            var analysePositionsBy = config.ValueOrNull("AnalysePositionsBy");

            if (analysePositionsBy == "Average")
            {
                dto.PerformAveragePositionAnalysis            = true;
                dto.AveragePositionMinimumNumberOfTrades      = Convert.ToInt32(config.ValueOrNull("MinNumberOfTrades"));
                dto.AveragePositionMaximumPositionValueChange = Convert.ToDecimal(config.ValueOrNull("MaxValueChangePercent")) / 100;
            }

            _ruleRunner.RuleParameterDto.WashTrades = dto.CreateArray();
            _ruleRunner.RuleType = Rules.WashTrade;
        }