SmoothingParameter: Double;
The SmoothingParameter property determines value of smoothing parameter.
Sub UserProc;
Var
MB: IMetabase;
CrInf: IMetabaseObjectCreateInfo;
MObj: IMetabaseObject;
Model: IMsModel;
Trans: IMsFormulaTransform;
Varr: IMsVariableStub;
VarTrans: IMsFormulaTransformVariable;
Tree: IMsFormulaTransformSlicesTree;
Slice: IMsFormulaTransformSlice;
Selector: IMsFormulaTransformSelector;
Formula: IMsFormula;
HPFilter: IMsHodrickPrescottFilterTransform;
MethodSeries: IMsMethodSeries;
Begin
MB := MetabaseClass.Active;
CrInf := Mb.CreateCreateInfo;
CrInf.ClassId := MetabaseObjectClass.KE_CLASS_MSMODEL;
CrInf.Id := "New_HPFilter";
CrInf.Name := "New_HPFilter";
CrInf.Parent := Mb.ItemById("KONT_MODEL");
CrInf.Permanent := False;
MObj := Mb.CreateObject(CrInf).Edit;
Model := MObj As IMsModel;
Trans := Model.Transform;
Varr := MB.ItemByIdNamespace("Var_1", MB.ItemById("KONT_MODEL").Key).Bind As IMsVariableStub;
Trans.Outputs.Add(Varr);
//loaded variable
Varr := MB.ItemByIdNamespace("Var_2", MB.ItemById("KONT_MODEL").Key).Bind As IMsVariableStub;
Trans.Series.Add(Varr);
VarTrans := Trans.Outputs.Item(0);
Tree := VarTrans.SlicesTree(VarTrans);
Slice := Tree.CreateSlice(1);
Selector := Model.Transform.CreateSelector;
Selector.Slice := Slice;
Formula := Model.Transform.Transform(Selector);
Formula.Kind := MsFormulaKind.HodrickPrescottFilter;
HPFilter := Formula.Method As IMsHodrickPrescottFilterTransform;
HPFilter.SmoothingParameter := 6;
MethodSeries := HPFilter.Series;
//set loaded variable
MethodSeries.Fitted := Varr As IMsFormulaTermInfo;
MObj.Save;
End Sub UserProc;
After executing the example the model that uses the Hodrick Prescott filter for calculation is created in the modeling container. The output and loaded variables are added and the parameter of smoothing is set to the model.
See also: