New version merge

This commit is contained in:
Miha Kralj
2024-09-22 17:31:24 -07:00
parent 1b719fa94e
commit d475bcd19a
405 changed files with 56573 additions and 12440 deletions
+63
View File
@@ -0,0 +1,63 @@
#!meta
{"kernelInfo":{"defaultKernelName":"csharp","items":[{"aliases":[],"name":"csharp"}]}}
#!csharp
#r "..\lib\obj\Debug\QuanTAlib.dll"
using QuanTAlib;
QuanTAlib.Formatters.Initialize();
#!csharp
public class Ema {
double lastema;
double k, extra;
int i, p;
public Ema(int p) {
k = 1/((double) p+1);
extra = 1;
lastema = 0;
}
public double Calc(double value) {
extra = (1 - k) * extra;
double ema = k * (value - lastema) + lastema;
lastema = ema;
return ema / (1 - extra);
}
}
#!csharp
public class Ema {
private double smooth, k;
private double extra;
private int i, p;
public Ema(int period) {
p = period;
k = 1.0 / (p + 1);
extra = 1;
smooth = 0;
i = 0;
}
public double Calc(double value) {
i++;
k = 1/((double)Math.Min(p,i)+1);
extra *= (1-k);
smooth = k * (value - smooth) + smooth;
return extra < 1e-10 ? smooth : smooth / (1 - extra);
}
}
#!csharp
Ema ma = new(3);
double[] input = new[]{1.0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0};
for (int i=0; i<input.Length; i++) {
double output = ma.Calc(input[i]);
Console.WriteLine($" {output:F3}");
}