@JoinQuant-PM P语言0基础小白求教,我想利用偏离布林线下轨的程度评分,即((下轨值-现价)/下轨值)越大,得分越高,可下面这段代码总是出错,请帮忙看看哪里错了,谢谢
```
# 布林线
def Bollinger_Bands(stock_list, timeperiod=5, nbdevup=2, nbdevdn=2):
dst_stocks = {}
# 修复传入为单只股票的情况
if isinstance(stock_list, str):
stock_list = [stock_list]
# 计算 Bollinger Bands
stock_data = history(timeperiod*2, '1d', 'close' , stock_list, df=False, skip_paused=True)
upperband={}; middleband={}; lowerband={}
for stock in stock_list:
upperband[stock], middleband[stock], lowerband[stock] = talib.BBANDS(stock_data[stock], timeperiod, nbdevup, nbdevdn)
cur_price = attribute_history(stock,1,'1m','close',df=False)
score = (lowerband - cur_price)/lowerband
dst_stocks[stock] = score
df = pd.DataFrame(dst_stocks.values(), index=dst_stocks.keys())
df.columns = ['score']
df = df.sort(columns='score', ascending=True)
return df.index
```
2017-03-28