2017-02-24 6 views
1

これは私の最初の投稿であり、私はPythonとPandasの新機能です。私は、このウェブサイトで見た多くの質問と回答に基づいて、以下のコードを組み合わせて作業しています。私の次の課題は、「VTIとBND」に記載された2つのETFの月末の「Adj Close」の値が出力されるように、月末取引カレンダーをコードに適用する方法です。 「100ma」100日移動平均は、それまでの100取引日に基づいて計算されなければなりません。ヤフーAPIデータにMonth To Trading Trading Calendarを適用する

@ryan sheftelはこのサイトではうまくいくように見えますが、私が望むものを私のコードで実装することはできません。私がこれまでに一緒に入れている

Create trading holiday calendar with Pandas

コード:

import datetime as dt #set start and end dates for data we are using 
import pandas as pd 
import numpy as np 
import pandas_datareader.data as web # how I grab data from Yahoo Finance API. Pandas is popular data analysis library. 

start = dt.datetime(2007,1,1) 
end = dt.datetime(2017,2,18) 

vti = web.DataReader('vti', 'yahoo',start, end)# data frame, stock ticker symbol, where getting from, start time, end time 
bnd = web.DataReader('bnd', 'yahoo', start, end) 

vti["100ma"] = vti["Adj Close"].rolling(window=100).mean() 
bnd["100ma"] = bnd["Adj Close"].rolling(window=100).mean() 

# Below I create a DataFrame consisting of the adjusted closing price of these stocks, first by making a list of these objects and using the join method 
stocks = pd.DataFrame({'VTI': vti["Adj Close"], 
         'VTI 100ma': vti["100ma"], 
         'BND': bnd["Adj Close"], 
         'BND 100ma': bnd["100ma"], 
         }) 

print (stocks.head()) 

stocks.to_csv('Stock ETFs.csv') 

答えて

0

私は一見の事業月

import datetime as dt #set start and end dates for data we are using 
import pandas as pd 
import numpy as np 
import pandas_datareader.data as web # how I grab data from Yahoo Finance API. Pandas is popular data analysis library. 

start = dt.datetime(2007,1,1) 
end = dt.datetime(2017,2,18) 

ids = ['vti', 'bnd'] 
data = web.DataReader(ids, 'yahoo', start, end) 

ac = data['Adj Close'] 
ac.join(ac.rolling(100).mean(), rsuffix=' 100ma').asfreq('BM') 

        bnd  vti bnd 100ma vti 100ma 
Date             
2007-01-31  NaN 58.453726  NaN  NaN 
2007-02-28  NaN 57.504188  NaN  NaN 
2007-03-30  NaN 58.148760  NaN  NaN 
2007-04-30 54.632232 60.487535  NaN  NaN 
2007-05-31 54.202353 62.739991  NaN 59.207899 
2007-06-29 54.033591 61.634027  NaN 60.057136 
2007-07-31 54.531996 59.455505  NaN 60.902113 
2007-08-31 55.340892 60.330213 54.335640 61.227386 
2007-09-28 55.674840 62.650936 54.542452 61.363872 
2007-10-31 56.186500 63.773849 54.942038 61.675567 
+0

にダウンサンプリングするasfreqを使用したいが、私は、上記のスクリプトで働いていたと思いました。その後、データの全期間をExcelにエクスポートすると、5/31/2010(メモリアルデー)と3/29/2013(グッドフード)が表示されないことに気付きました。誰もがpiRSquaredによって上記で提供されたコード内でこれを修正する方法を知っていますか? – clamorte001

関連する問題