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; }
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); }
public IModelFormula <IModel, Decimal?> CreateBaseLessOverlayFormula( IModelFormula <IModel, Decimal?> rescaledBaseForAdjustmentFormula ) { return(new Computing.BaseLessOverlayFormula(this.picker, rescaledBaseForAdjustmentFormula)); }
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); }
public BaseLessOverlayFormula(ExpressionPicker picker, IModelFormula <IModel, Decimal?> rescaledBaseForAdjustmentFormula) { this.picker = picker; this.rescaledBaseForAdjustmentFormula = rescaledBaseForAdjustmentFormula; }