AutoTrend(Input: ITimeSeries;
Period: IMsPeriod): Variant;
AutoTrend(Input: Prognoz.Platform.Interop.Ms.TimeSeries;
Period: Prognoz.Platform.Interop.Ms.IMsPeriod;
Context: Prognoz.Platform.Interop.Fore.ForeRuntimeContext): ojbject;
Input. The variable, which optimal trend must be autoselected.
Period. The period, at which optimal trend is autoselected.
Context. Context. The parameter is used only in Fore.NET.
The AutoTrend method selects optimal trend for the variable in the specified period.
Executing the example requires that the repository contains a modeling container with the MS identifier. A model with the MODEL identifier calculated by the method of determinate equation and containing at least one input variable must be available in this container.
Add links to the Metabase, Ms system assemblies.
Var
Mb: IMetabase;
ModelSpace, ModelObj: IMetabaseObject;
Transf: IMsFormulaTransform;
Formula: IMsFormula;
Model: IMsModel;
Determ: IMsDeterministicTransform;
TransVar: IMsFormulaTransformVariable;
Slice: IMsFormulaTransformSlice;
TermInfo: IMsFormulaTermInfo;
Expr: IExpression;
Begin
Mb := MetabaseClass.Active;
ModelSpace := Mb.ItemById("MS").Bind;
ModelObj := Mb.ItemByIdNamespace("MODEL", ModelSpace.Key).Edit;
Model := ModelObj As IMsModel;
Transf := Model.Transform;
Formula := Transf.FormulaItem(0);
Determ := Formula.Method As IMsDeterministicTransform;
TransVar := Transf.Inputs.Item(0);
Slice := TransVar.Slices.Item(0);
TermInfo := Transf.CreateTermInfo;
TermInfo.Slice := Slice;
Expr := Determ.Expression;
Expr.References := "Ms;Stat";
Expr.AsString := "AutoTrend(" + TermInfo.TermInnerText + ",SetPeriod(" + """" + "01.01.2003" + """" + "," + """" + "01.01.2006" + """" + "))";
If Expr.Valid
Then ModelObj.Save;
Else Debug.WriteLine(Model is not saved: error in formula);
End If;
After executing the example optimal trend is selected for the input variable in the period from 2003 to 2006.
The requirements and result of the Fore.NET example execution match with those in the Fore example.
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
Mb: IMetabase;
ModelSpace, ModelObj: IMetabaseObject;
Transf: IMsFormulaTransform;
Formula: IMsFormula;
Model: IMsModel;
Determ: IMsDeterministicTransform;
TransVar: IMsFormulaTransformVariable;
Slice: IMsFormulaTransformSlice;
TermInfo: IMsFormulaTermInfo;
Expr: IExpression;
Begin
Mb := Params.Metabase;
ModelSpace := Mb.ItemById["MS"].Bind();
ModelObj := Mb.ItemByIdNamespace["MODEL_D", ModelSpace.Key].Edit();
Model := ModelObj As IMsModel;
Transf := Model.Transform;
Formula := Transf.FormulaItem[0];
Determ := Formula.Method As IMsDeterministicTransform;
TransVar := Transf.Inputs.Item[0];
Slice := TransVar.Slices.Item[0];
TermInfo := Transf.CreateTermInfo();
TermInfo.Slice := Slice;
Expr := Determ.Expression;
Expr.References := "Ms;Stat";
Expr.AsString := "AutoTrend(" + TermInfo.TermInnerText + ",SetPeriod(" + """" + "01.01.2003" + """" + "," + """" + "01.01.2006" + """" + "))";
If Expr.Valid
Then ModelObj.Save();
Else System.Diagnostics.Debug.WriteLine("Model is not saved: error in formula");
End If;
End Sub;
Expression 1:
AutoTrend({Brazil|BCA}, SetPeriod("2006A", "2009A"))
Result: optimal trend is selected for the series Brazil|BCA in the period from 2006 to 2009.
Use: it can be used in formulas of calculated series of time series database and model formulas of modeling container that is a child of the time series database.
Expression 2:
AutoTrend(X1,SetPeriod("2006A", "2009A"))
Result: optimal trend is selected for the factor X1 in the period from 2006 to 2009.
Use: it can be used in model formulas of modeling container.
See also:
IModelling | Time Series Database: Calculator | Modeling Container: Editing Regressor or Formula