解释这个随机函数是如何工作的
Explain how this stochastik function works
在书中"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: This gives us our percentage of price movement of the high/low price.
(Timothy Washington 的“Clojure for Finance”引述和代码)
我尝试了 REPL 中的函数,但它的输出对我来说没有意义:
user=> (println (stochastic-k 18 13 23))
13/10
所以结果是 1.3
,但我实际上期望 1.0
,因为据我所知,18 是 13 到 23 范围的中点。
任何人都可以向我解释该功能应该如何工作吗?
我认为实施中似乎存在错误。我认为分子应该是这样的:
numerator (if (> last-price hlmidpoint)
(- last-price hlmidpoint)
(- hlmidpoint last-price))
然后该函数将生成一个分数,表示 last-price
与范围内的平均价格有多少差异。
在书中"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: This gives us our percentage of price movement of the high/low price.
(Timothy Washington 的“Clojure for Finance”引述和代码)
我尝试了 REPL 中的函数,但它的输出对我来说没有意义:
user=> (println (stochastic-k 18 13 23))
13/10
所以结果是 1.3
,但我实际上期望 1.0
,因为据我所知,18 是 13 到 23 范围的中点。
任何人都可以向我解释该功能应该如何工作吗?
我认为实施中似乎存在错误。我认为分子应该是这样的:
numerator (if (> last-price hlmidpoint)
(- last-price hlmidpoint)
(- hlmidpoint last-price))
然后该函数将生成一个分数,表示 last-price
与范围内的平均价格有多少差异。