如何编写一个复杂的指标计算,在其计算中需要上一期间的值?

How to program a convoluted Indicator calculations, that requires the previous period value in its calculation?

如果我们以Accumulation/Distribution指标为例。

Investopedia 将步骤列为:

  1. Money Flow Multiplier = [(close - low) - (high - close)] /(high - low)

  2. Money Flow Volume = Money Flow Multiplier x volume for the period

  3. Accumulation/Distribution= previous Accumulation/Distribution + current period's Money Flow

第三步是我比较迷惑的地方,没有前面的A/D怎么算A/D,需要前面的A/D等等。。 .

还有其他类似的指标需要指标本身进行计算。那么它是怎么做到的呢?

对此有一个通用的软件方法:

你的案例有一个简单的卷积,深度仅为 1。有一些更深层次的卷积指标,按照同样的原理,只是更深一点。

解决方案:

找到一个所谓的 "neutral" 值,微积分依赖于该值并将其注入 "missing" 时间步长。

  • 对于 PriceDOMAIN 指标,如移动平均线,这可以是第一个可用柱的 Close 价格,它被复制 "period"-时光倒流
  • 对于乘法和指数指标,可以是1
  • 对于加法指标,可以是0

如果中性值在代数上是正确的,或者在稍长一点的时间内,当替代值是 "just approximations" 时,所有玩具都会在接下来的 "period" 时间步内与公允值对齐。根据最近的指标输出,前者和后者的情况通常都会及时回溯,从而扭曲未来的指标值,并以某种方式打扰当前决策的实际流程。