如何编写一个复杂的指标计算,在其计算中需要上一期间的值?
How to program a convoluted Indicator calculations, that requires the previous period value in its calculation?
如果我们以Accumulation/Distribution指标为例。
Investopedia 将步骤列为:
Money Flow Multiplier = [(close - low) - (high - close)] /(high - low)
Money Flow Volume = Money Flow Multiplier x volume for the period
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" 时间步内与公允值对齐。根据最近的指标输出,前者和后者的情况通常都会及时回溯,从而扭曲未来的指标值,并以某种方式打扰当前决策的实际流程。
如果我们以Accumulation/Distribution指标为例。
Investopedia 将步骤列为:
Money Flow Multiplier = [(close - low) - (high - close)] /(high - low)
Money Flow Volume = Money Flow Multiplier x volume for the period
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" 时间步内与公允值对齐。根据最近的指标输出,前者和后者的情况通常都会及时回溯,从而扭曲未来的指标值,并以某种方式打扰当前决策的实际流程。