by Guest » 12 Feb 2025, 08:44
Ich versuche, TradingView EMA -Berechnung für eine benutzerdefinierte Software zu replizieren, aber unterschiedliche Ergebnisse als bei TradingView. Gemäß TradingView sollte die EMA -Berechnungsdokumentation genau dieselbe Methode sein. Was fehlt mir?
Code: Select all
var closePrices = new List
{
("2024-01-03 00:00:00.0000000" , 84.0600000000m),
("2024-01-04 00:00:00.0000000" , 96.8900000000m),
("2024-01-05 00:00:00.0000000" , 89.6400000000m),
("2024-01-06 00:00:00.0000000" , 80.4300000000m),
("2024-01-07 00:00:00.0000000" , 73.1800000000m),
("2024-01-08 00:00:00.0000000" , 85.3900000000m),
("2024-01-09 00:00:00.0000000" , 85.3400000000m),
("2024-01-10 00:00:00.0000000" , 97.9800000000m),
("2024-01-11 00:00:00.0000000" , 108.0600000000m)
};
var emas = CalculateEMA(closePrices, 7);
foreach(var ema in emas)
{
Console.WriteLine(ema);
}
static List CalculateEMA(List prices, int period)
{
List ema = new List();
decimal alpha = 2m / (period + 1);
ema.Add(prices[0]);
for (int i = 1; i < prices.Count; i++)
{
decimal value = alpha * prices[i].Item2 + (1 - alpha) * ema[i - 1].Item2;
ema.Add((prices[i].Item1, value));
}
return ema;
}
< /code>
Ausgabe: < /p>
(2024-01-03 00:00:00.0000000, 84,0600000000)
(2024-01-04 00:00:00.0000000, 87,267500000000)
(2024-01-05 00:00:00.0000000, 87,86062500000000)
(2024-01-06 00:00:00.0000000, 86,0029687500000000)
(2024-01-07 00:00:00.0000000, 82,797226562500000000)
(2024-01-08 00:00:00.0000000, 83,44541992187500000000)
(2024-01-09 00:00:00.0000000, 83,9190649414062500000000)
Ich versuche, TradingView EMA -Berechnung für eine benutzerdefinierte Software zu replizieren, aber unterschiedliche Ergebnisse als bei TradingView. Gemäß TradingView sollte die EMA -Berechnungsdokumentation genau dieselbe Methode sein. Was fehlt mir?[code]var closePrices = new List
{
("2024-01-03 00:00:00.0000000" , 84.0600000000m),
("2024-01-04 00:00:00.0000000" , 96.8900000000m),
("2024-01-05 00:00:00.0000000" , 89.6400000000m),
("2024-01-06 00:00:00.0000000" , 80.4300000000m),
("2024-01-07 00:00:00.0000000" , 73.1800000000m),
("2024-01-08 00:00:00.0000000" , 85.3900000000m),
("2024-01-09 00:00:00.0000000" , 85.3400000000m),
("2024-01-10 00:00:00.0000000" , 97.9800000000m),
("2024-01-11 00:00:00.0000000" , 108.0600000000m)
};
var emas = CalculateEMA(closePrices, 7);
foreach(var ema in emas)
{
Console.WriteLine(ema);
}
static List CalculateEMA(List prices, int period)
{
List ema = new List();
decimal alpha = 2m / (period + 1);
ema.Add(prices[0]);
for (int i = 1; i < prices.Count; i++)
{
decimal value = alpha * prices[i].Item2 + (1 - alpha) * ema[i - 1].Item2;
ema.Add((prices[i].Item1, value));
}
return ema;
}
< /code>
Ausgabe: < /p>
(2024-01-03 00:00:00.0000000, 84,0600000000)
(2024-01-04 00:00:00.0000000, 87,267500000000)
(2024-01-05 00:00:00.0000000, 87,86062500000000)
(2024-01-06 00:00:00.0000000, 86,0029687500000000)
(2024-01-07 00:00:00.0000000, 82,797226562500000000)
(2024-01-08 00:00:00.0000000, 83,44541992187500000000)
(2024-01-09 00:00:00.0000000, 83,9190649414062500000000)