namespace PKMA_ { [HandlerCategory("Kaufman's")] public class PKMA : IDouble2DoubleHandler { [HandlerParameter(true, "5", Min = "2", Max = "100", Step = "1")] public int Period { get; set; } public IList Execute(IList source) { var P = source; var CUM = new double[P.Count]; var PKMA = new double[P.Count]; var SMA_ = new double[P.Count]; for(int i = 0; i < P.Count; i++) { for(int j = 0; j <=i; j++) CUM[i]+=1; } for(int i = 0; i < P.Count; i++) { if(i Execute(IList source) { var P = source; var Dnoise = new double[P.Count]; var Noise = new double[P.Count]; var PKAMAII = new double[P.Count]; for(int i = 0; i < P.Count; i++) { if(i<1) Dnoise[i]=0; else Dnoise[i] = Math.Abs(P[i]-P[i-1]); } for(int i = 0; i < P.Count; i++) { if(i0?(Signal/Noise[i]):0; var FERatio = FEndF*EffRatio+SEndF*(1-EffRatio); var SmoothF = Math.Pow(FERatio,2); PKAMAII[i]=P[i]*SmoothF+(1-SmoothF)*PKAMAII[i-1]; } } return PKAMAII; } }