2016-12-21 27 views
0

在这本书中“Clojure的财务”我发现像这样的功能:解释这一stochastik功能是如何工作的

(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”,由Timothy华盛顿)

我试图在REPL的功能,但它的输出没有意义对我说:

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

所以结果是1.3,但我真的希望1.0,因为18是13至23范围的中点,据我可以告诉。

任何人都可以向我解释的功能是如何工作?

+0

我想,不是一个错字或错误。说起'stochastik-k'时,计算不匹配'随机-k' –

+0

@AlanThompson我也这么认为,定义,我觉得作者想要实现这一点? https://en.wikipedia.org/wiki/Stochastic_oscillator – Max

回答

1

似乎有在我看来实现中的错误。我认为,分子应该是这样的:

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

然后该函数将产生较有多大?last-price从平均价格范围不同的一小部分。

+0

是否有作者试图实现的functon的任何文档?我仍然不明白如何解释输出。 – Max

+1

@Max我相信它是这一个:http://www.tradingsolutions.com/functions/StochasticOscillator.html不过,我不是专家,虽然看起来很简单的直觉,我觉得术语有些混乱 –

+0

谢谢你,我已经认为实施是错误的,因为产出没有意义。不幸的是,这不是书籍代码示例中唯一的错误,它有一些非常明显的语法错误。 – Max

相关问题