それでは、追加で実装するもの確認してゆきましょう。
高値安値のインジケータから。
./lib/indicator/high_low.rb
おお短い。簡単そうだ。
あ、ちょっとだけ難しい。
def calculate_indicator
prices = @stock.map_prices(@price_at)
prices.send(@high_low.to_s + “s”, @span)
end
prices.sendのところ、
pricesは日足の4本のうちのどれかの配列で、
配列Arrayは拡張してある。highsとlowsというメソッドを用意した。
指定した期間の高値安値を返すように。
@high_lowは最高値(high)か最安値(low)どちらかなので、
最高値、最安値を指定して取れる。
うーん、ちょっとトリッキーだ。
Rubyらしい。わかりづらいが、シンプルに書ける。
それとまあ、4本足のうち、
高値の期間中の最高値と安値の期間中の最安値、しか実際使わない気もするが、
この実装は汎用的だ。
いずれにせよ、さっくりと高値安値のインジケータは実装された。
質問コーナー、お問い合わせは、sanpome.net@gmail.com まで。