做了一个基于talib的adx指标,但值和通达信的不一致,大家帮忙判断一下问题在哪?python2.7
def ADX(security_list, timeperiod=14, bar_type ='m'):
# 修复传入为单只股票的情况
if isinstance(security_list, str):
security_list = [security_list]
# 计算 ADX
adx = {}
for code in security_list:
cutime = GetCurrentTime()
security_data = GetHisDataByFieldAsDF(code, ["high","low","close"], bar_type = g.unit,end_date = cutime, count = timeperiod * 2 )
#attribute_history(stock, timeperiod*2, unit,['high','low','close'] , df=False)
nan_count = list(np.isnan(security_data['close'])).count(True)
if nan_count == len(security_data['close']):
log.info("359股票 %s 输入数据全是 NaN,该股票可能已退市或刚上市,返回 NaN 值数据。" %stock)
adx[code] = array([np.nan])
else:
high_ADX = security_data['high'].values
low_ADX = security_data['low'].values
close_ADX = security_data['close'].values
adx[code] = talib.ADX(high_ADX, low_ADX, close_ADX, timeperiod)
return adx