0

在“Clojure for Finance”一书中,我发现了一个这样的函数:

(defn stochastic-k [last-price low-price high-price]
  (let [hlrange (- high-price low-price)
        hlmidpoint (/ hlrange 2)
        numerator (if (> last-price hlmidpoint)
                    (- last-price hlmidpoint)
                    (- hlmidpoint low-price))]
     (/ numerator hlrange)))

作者将其描述为:

stochastic-k:这为我们提供了高价/低价价格变动的百分比。

(引自Timothy Washington的“ Clojure for Finance ”的引用和代码)

我尝试了 REPL 中的函数,但它的输出对我来说没有意义:

user=> (println (stochastic-k 18 13 23))
13/10

所以结果是1.3,但我实际上会期望1.0,因为据我所知,18 是 13 到 23 范围的中点。

谁能向我解释该功能应该如何工作?

4

1 回答 1

1

在我看来,实施中似乎存在错误。我认为分子应该是:

numerator (if (> last-price hlmidpoint)
                    (- last-price hlmidpoint)
                    (- hlmidpoint last-price))

last-price然后该函数将生成一个分数,表示与该范围内的平均价格相差多少。

于 2016-12-21T09:37:18.120 回答