stackoverflow を少し検索しましたが、解決策が見つかりませんでした。これは、データフレームがまだあまり明確ではないという事実が原因である可能性があります。ボリンジャーバンドを計算する練習をしています。単一の在庫に対して実行しましたが、任意の数のアイテムに対して機能させたいと考えています。現在、私はこれを持っています:
def movingAverage(symbols, dt_start, dt_end, lookback):
// Symbols = ['AAPL', 'GOOG']
ldt_timestamps = du.getNYSEdays(dt_start, dt_end, DT_TIME_OF_DAY)
c_dataobj = da.DataAccess('Yahoo')
ls_keys = ['close']
ldf_data = c_dataobj.get_data(ldt_timestamps, symbols, ls_keys)
d_data = dict(zip(ls_keys, ldf_data))
closeData = d_data['close']
d_data['ma'] = d_data['close'].copy() // calculates the Moving Average for ALL stocks
d_data['std'] = d_data['close'].copy()
d_data['bollinger'] = d_data['close'].copy()
d_data['ma'] = pandas.rolling_mean(d_data['close'], lookback, min_periods=lookback)
d_data['std'] = pandas.rolling_std(d_data['close'], lookback, min_periods=lookback)
ma
シンボルをループするのではなく、フレーム全体の(移動平均) と(ローリング標準偏差)を計算することに誇りを持っstd
ていたので、知りたいのは (疑似コード) です。
for all the symbols
fill in d_data['bollinger'] with
(d_data['close'] - d_data['ma']) / d_data['std']
close
各シンボルに for ループを実行せずに、インデックス付けとシンボル インデックスによってこれを計算することなく、これを実行できると思いdata
ます。
質問を改善できるかどうか教えてください。
前もって感謝します。