移動平均 (単純および指数) を計算しようとしていますが、私のニーズにぴったりの simple_statistics gem に出会いました。このリンクからコードを変更しようとしています:単純な移動平均を計算する方法) 私の目的のために。
目標: 長期にわたる 1 つの株式の過去の価格を一覧表示する、次のような JSON があります。
[
{
"Low": 8.63,
"Volume": 14211900,
"Date": "2012-10-26",
"High": 8.79,
"Close": 8.65,
"Adj Close": 8.65,
"Open": 8.7
},
これに、20日と50日の平均(および必要に応じて他のもの)の各日の移動平均(単純および指数 - simple_statistics gemが簡単に行うように見える)を追加したいので、毎日このように表示されます:
[
{
"Low": 8.63,
"Volume": 14211900,
"Date": "2012-10-26",
"High": 8.79,
"Close": 8.65,
"Adj Close": 8.65,
"Open": 8.7,
"SMA20":
"SMA50":
},
yahoo_finance と simple_statistics の gem を使用し、出力を元の JSON に追加することをお勧めします。これは、理解が深まれば変更が容易になると感じているためです。
現在、私はこれをどのように行うかについてまだ読んでいます (助けていただければ幸いです) 以下は、Microsoft の 20 日間の単純移動平均を計算する試みです (うまくいきません)。この方法 (HistoricalQuotes_days を使用) は、開始日が今日であると想定しているように見えますが、これは私の全体的な目標には適していません。
require 'rubygems'
require 'yahoofinance'
require 'simple_statistics'
averages = {}
dates.each do |dates|
quotes = YahooFinance::get_HistoricalQuotes_days ( 'MSFT' , 20 ) start, finish
closes = quotes.collect { |quote| quote.close }
averages = closes.mean
end
ありがとうございました
更新: 既に JSON にデータがあるため、実際に YahooFinance gem を使用する必要はありません。どうすればよいかわからないのは、JSON 配列から取得し、simple_statistics gem を使用して計算を行い、新しいデータを元の JSON に追加することです。