Files
marketdata/MarketDataLib/MarketDataModel/ExponentialDecay.cs
2024-02-22 14:52:53 -05:00

36 lines
896 B
C#

using System;
using System.Text;
using System.Linq;
using MarketData.Numerical;
namespace MarketData.MarketDataModel
{
public class ExponentialDecay
{
private double[] decays=null;
public ExponentialDecay()
{
}
public double this[int sample]
{
get{return decays[sample];}
}
public void Prime(float[] samples,double deviations=2.00)
{
double[]factors=new double[samples.Length];
decays=new double[samples.Length];
double stddev=Numerics.StdDev(ref samples);
for(int index=0,ordinal=samples.Length;index<samples.Length;index++,ordinal--)
{
factors[index]=(ordinal*ordinal)+(deviations*stddev);
}
double min=factors.Max();
double max=factors.Min();
for(int index=0;index<samples.Length;index++)
{
decays[index]=factors[index]*(100.00/(max-min))/100.00;
}
}
}
}