2016-12-21 5 views
0

をどのように機能するかを説明:このstochastik機能は、私はそのような機能を発見した著書「財政のためのClojure」で

(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

オタクかバグかと思います。計算が 'stochastic-k'の定義と一致しません –

+0

@AlanThompson私もそうだと思いますが、' stochastik-k'については、これを実装したかったと思いますか? https://en.wikipedia.org/wiki/Stochastic_oscillator – Max

答えて

1

私の意見では実装にバグがあるようです。

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

そして機能がlast-priceの範囲の平均価格と異なるんどのくらい表す割合を生成します:私は、分子は以下のようにすべきだと思います。

+0

著者が実装しようとしたfunctに関する文書はありますか?私はまだ、外出をどのように解釈するのかを理解していません。 – Max

+1

@Max私はそれがこの1つだと信じています。http://www.tradingsolutions.com/functions/StochasticOscillator.htmlしかし、私は専門家ではなく、直感的には非常に単純ですが、用語がやや混乱しています。 –

+0

ありがとう、私出力が意味をなさないため、実装が間違っているとすでに考えていました。残念ながら、これは本のコード例の唯一の間違いではなく、非常に明白な構文エラーがあります。 – Max

関連する問題