Ho una classe semplice per calcolare la media mobile dei valori che aggiungo ad essa. Io lo uso come questo:Calcola media mobile esponenziale su una coda in C#
MovingAverage ma = new MovingAverage();
ma.push(value1);
ma.push(value2);
...
Console.Writeline(average.Average);
//the class
public class MovingAverage
{
public int Period = 5;
private Queue<double> Quotes = new Queue<double>();
public void Push(double quote)
{
if (Quotes.Count == Period)
Quotes.Dequeue();
Quotes.Enqueue(quote);
}
public void Clear()
{
Quotes.Clear();
}
public double Average { get { if (Quotes.Count == 0) return 0; return Quotes.Average(); } }
public double ExponentialMovingAverage
{
get
{
???
}
}
}
vorrei estendere questa classe per restituire anche l'ExponentialMovingAverage. Come scriveresti restituire la media esponenziale degli elementi in coda in virgolette?
Mi rendo conto che sarà necessario aggiungere una proprietà Alpha alla classe, ma non sono sicuro di come completare la matematica per il calcolo.
alpha non è definito. Cosa hai impostato per questo? – Levitikon
@Levitikon: vedere [Exponential_moving_average] (https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average). "Il coefficiente α rappresenta il grado di diminuzione della ponderazione, un fattore di livellamento costante compreso tra 0 e 1. A α più elevato sconta più velocemente le osservazioni più vecchie." – Ani