Beispiel #1
0
 public IModelFormula <IModel, Decimal?> CreatePortfolioScaledFormula(
     IModelFormula <IModel, Decimal?> baseLessOverlayFormula,
     IExpression <Decimal?> baseLessOverlayPositiveTotal,
     IExpression <Decimal?> baseLessOverlayTotal
     )
 {
     return(new Computing.PortfolioScaledFormula(baseLessOverlayFormula, baseLessOverlayPositiveTotal, baseLessOverlayTotal));
 }
 public BaseLessOverlayPositiveTotalFormula(
     IEnumerable <IModel> models,
     IModelFormula <IModel, Decimal?> baseLessOverlayFormula,
     IExpression <Decimal?> cashRescaledBase
     )
 {
     this.models = models;
     this.baseLessOverlayFormula = baseLessOverlayFormula;
     this.cashRescaledBase       = cashRescaledBase;
 }
 public PortfolioScaledFormula(
     IModelFormula <IModel, Decimal?> baseLessOverlayFormula,
     IExpression <Decimal?> baseLessOverlayPositiveTotal,
     IExpression <Decimal?> baseLessOverlayTotal
     )
 {
     this.baseLessOverlayFormula       = baseLessOverlayFormula;
     this.baseLessOverlayPositiveTotal = baseLessOverlayPositiveTotal;
     this.baseLessOverlayTotal         = baseLessOverlayTotal;
 }
 public ModelFormulaExpression(
     String name,
     TModel model,
     IModelFormula <TModel, TValue> formula,
     IValueAdapter <TValue> adapter,
     Func <ModelFormulaExpression <TModel, TValue>, CalculationTicket, IEnumerable <IValidationIssue> > validator
     )
 {
     this.Name      = name;
     this.Model     = model;
     this.Formula   = formula;
     this.Adapter   = adapter;
     this.validator = validator;
 }
Beispiel #5
0
        public IExpression <Decimal?> CreateBaseLessOverlayTotalExpression(
            GlobeModel root,
            GlobeTraverser traverser,
            IModelFormula <IModel, Decimal?> baseLessOverlayFormula,
            IExpression <Decimal?> cashRescaledBase
            )
        {
            var models = traverser.TraverseGlobe(root);
            var result = new Expression <Decimal?>(
                ValueNames.BaseLessOverlayTotal,
                new BaseLessOverlayTotalFormula(
                    models,
                    baseLessOverlayFormula,
                    cashRescaledBase
                    ),
                this.commonParts.NullableDecimalValueAdapter,
                this.commonParts.ValidateWhatever
                );

            return(result);
        }
Beispiel #6
0
 public IModelFormula <IModel, Decimal?> CreateBaseLessOverlayFormula(
     IModelFormula <IModel, Decimal?> rescaledBaseForAdjustmentFormula
     )
 {
     return(new Computing.BaseLessOverlayFormula(this.picker, rescaledBaseForAdjustmentFormula));
 }
Beispiel #7
0
        public RegionModel CreateRegionModel(
            String name,
            IModelFormula <IModel, Decimal?> baseActiveFormula,
            IEnumerable <IRegionModelResident> residents
            )
        {
            var result = new RegionModel(
                name,
                new SumExpression(
                    ValueNames.Benchmark,
                    residents.Select(x => picker.Benchmark.TryPickExpression(x)),
                    this.defaultValues.DefaultBenchmark,
                    this.commonParts.ValidateWhatever
                    ),
                new NullableSumExpression(
                    ValueNames.Base,
                    residents.Select(x => picker.Base.TryPickExpression(x)),
                    this.defaultValues.DefaultBase,
                    this.commonParts.ValidateWhatever
                    ),
                self => new ModelFormulaExpression <IModel, Decimal?>(
                    ValueNames.BaseActive,
                    self,
                    baseActiveFormula,
                    commonParts.NullableDecimalValueAdapter,
                    this.commonParts.ValidateWhatever
                    ),
                new SumExpression(
                    ValueNames.Overlay,
                    residents.Select(x => picker.Overlay.TryPickExpression(x)),
                    this.defaultValues.DefaultOverlay,
                    this.commonParts.ValidateWhatever
                    ),
                new NullableSumExpression(
                    ValueNames.PortfolioAdjsutment,
                    residents.Select(x => picker.PortfolioAdjustment.TryPickExpression(x)),
                    this.defaultValues.DefaultPortfolioAdjustment,
                    this.commonParts.ValidateWhatever
                    ),
                new NullableSumExpression(
                    ValueNames.PortfolioScaled,
                    residents.Select(x => picker.PortfolioScaled.TryPickExpression(x)),
                    this.defaultValues.DefaultPortfolioScaled,
                    this.commonParts.ValidateWhatever
                    ),
                new NullableSumExpression(
                    ValueNames.TrueExposure,
                    residents.Select(x => picker.TrueExposure.TryPickExpression(x)),
                    this.defaultValues.DefaultTrueExposure,
                    this.commonParts.ValidateWhatever
                    ),
                new NullableSumExpression(
                    ValueNames.TrueActive,
                    residents.Select(x => picker.TrueActive.TryPickExpression(x)),
                    this.defaultValues.DefaultTrueActive,
                    this.commonParts.ValidateWhatever
                    ),
                residents
                );

            return(result);
        }
Beispiel #8
0
 public BaseLessOverlayFormula(ExpressionPicker picker, IModelFormula <IModel, Decimal?> rescaledBaseForAdjustmentFormula)
 {
     this.picker = picker;
     this.rescaledBaseForAdjustmentFormula = rescaledBaseForAdjustmentFormula;
 }