如何在C#中找到2个值之间的差异?

2 c# absolute-value

我正在使用一个在10.000000和-10.000000之间波动的振荡器

价值变化每5分钟一次.我想找出当前值和5分钟前的值之间的差异.这是我的逻辑.

1 bar ago (1BA)= -.2
Current bar (CB) = .3
Run Code Online (Sandbox Code Playgroud)

如果我做了类似的事情,我不会得到1的值:

Abs(CB) - Abs(1BA) = .3 - .2 = 1
Run Code Online (Sandbox Code Playgroud)

鉴于:

Abs(CB- 1BA) = .3 - -.2 = 5
Run Code Online (Sandbox Code Playgroud)

我想简单地计算振荡器从一个时间帧移动到另一个时间帧之间的差异.我是否正在考虑使用正确的逻辑?

这是我的实际代码,请假设我的方法被调用是正确的:

if (Oscillator(PoFast, PoSlow, PoSmooth)[0] > 
           Oscillator(PoFast, PoSlow, PoSmooth)[3]
    && Math.Abs(Oscillator(PoFast, PoSlow, PoSmooth)[0] - 
           Oscillator(PoFast, PoSlow, PoSmooth)[3]) > .25)
Run Code Online (Sandbox Code Playgroud)

Chr*_*ett 6

在这两个中,Abs(CB-1BA)是正确的,因为两个读数之间的变化为.5.

编辑:为了使它更具可读性,假设你得到了双倍的值,你会做这样的事情,但是会进行错误检查,并且可能会使.25成为一个变量.

double[] values = Oscillator(PoFast, PoSlow, PoSmooth);
double currentBar = values[0];
double oneBarAgo = values[3];

if (currentBar > oneBarAgo && Math.Abs(currentBar - oneBarAgo) > .25)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)