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

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

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

1 bar ago (1BA)= -.2 Current bar (CB) = .3 

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

 Abs(CB) - Abs(1BA) = .3 - .2 = 1 

鉴于:

 Abs(CB- 1BA) = .3 - -.2 = 5 

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

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

 if (Oscillator(PoFast, PoSlow, PoSmooth)[0] > Oscillator(PoFast, PoSlow, PoSmooth)[3] && Math.Abs(Oscillator(PoFast, PoSlow, PoSmooth)[0] - Oscillator(PoFast, PoSlow, PoSmooth)[3]) > .25) 

在这两个中,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 } 

你的逻辑,Abs(CB-1BA)是正确的。

顺便说一句,如果你不是开发人员,你真的认为你应该编写C#代码来交易期货合约吗? 它们有足够的风险在最好的时候进行交易,没关系,当你编写代码来做它并且你不是开发人员时!