我有点搜索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']
我只是认为我可以在不对每个符号进行for循环并通过符号索引为close
和data
建立索引来计算这一点。
如果问题可以改进,请告诉我。
提前谢谢。
答案 0 :(得分:0)
就像我在伪代码中所描述的那样简单:
d_data['bollinger'] = (d_data['close'] - d_data['ma']) / d_data['std']
感谢所有关注该主题的人,下次我会花更多时间进行调查。