在“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)))
作者将其描述为:
随机-K:这给了我们高价/低价的价格变动百分比。
(提名和代码来自“Clojure for Finance”,提摩太华盛顿)
我在REPL中尝试了这个函数,但它的输出对我来说没有意义:
user=> (println (stochastic-k 18 13 23))
13/10
所以结果是1.3
,但我实际上期望1.0
,因为据我所知,18是13到23范围的中点。
任何人都可以向我解释这个功能应该如何工作吗?
答案 0 :(得分:1)
在我看来,实施中似乎存在一个错误。我认为分子应该是这样的:
numerator (if (> last-price hlmidpoint)
(- last-price hlmidpoint)
(- hlmidpoint last-price))
然后该函数将生成一个分数,表示last-price
与该范围内的平均价格有多大差异。