Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ボリンジャーバンドの傾きを取得する方法 #56

Open
baseballyama opened this issue May 2, 2016 · 1 comment
Open

ボリンジャーバンドの傾きを取得する方法 #56

baseballyama opened this issue May 2, 2016 · 1 comment

Comments

@baseballyama
Copy link

ボリンジャーバンドの傾きを「Signals::BollingerBands」を用いて取得した値から導出し、
その傾きを売買判定に使用したいと思っていますが、傾きの取得部分が実装できず困っています。
表題の機能の実装方法をご教示頂けないでしょうか。

@unageanu
Copy link
Owner

unageanu commented May 2, 2016

データの傾きを算出するなら、最小二乗法を使うのが良いかと思います。
最小二乗法 - Wikipedia

最小二乗法を利用して傾きを算出するクラス「Signals::Vector」を用意しているので、ご利用ください。

# Signals::Vector オブジェクトを作成。
# 引数で、傾きを求めるデータの数を指定する。
# 10の場合、最後に追加された10件のデータから傾きを求める。
signal = Signals::Vector.new(10)

# データ数が足りないとnilが返されるので、データを追加する
# ボリンジャーバンドの傾きを求めたい場合は、ボリンジャーバンドの出力値を指定すればよいかと。
1.upto(9) do |i|
  signal.next_data(i * 10)
end

#データ数が既定値を超えると傾きの計算がされる
#0より大きければ上向き。小さければ下向き。
p signal.next_data(100) # => 10


# 下向きの例
signal = Signals::Vector.new(10)

1.upto(9)  do |i|
  signal.next_data(i * -10)
end

p signal.next_data(-100) # => -10

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants