记录一下炒股用到的指标,主要是介绍原理和计算公式,包括不同的库可能计算方式不一样,整理了一下网上的资料。
CCI指标
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 
 | def CCI(stock, timeperiod=14):'''
 计算CCI指标
 '''
 cci = 0
 security_data = attribute_history(stock, timeperiod*2, '1d',['close','high','low'] , df=True)
 
 nan_count = list(np.isnan(security_data['close'])).count(True)
 if nan_count == len(security_data['close']):
 log.info("股票 %s 输入数据全是 NaN,该股票可能已退市或刚上市,返回 NaN 值数据。" %stock)
 cci[stock] = array([np.nan])
 else:
 close_CCI = security_data['close']
 high_CCI = security_data['high']
 low_CCI = security_data['low']
 cci = talib.CCI(high_CCI, low_CCI, close_CCI, timeperiod)
 
 
 return cci
 
 | 
RSI指标
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | def RSI(stock, timeperiod=14):'''
 计算RSI指标
 '''
 
 security_data = attribute_history(stock, timeperiod*2, '1d', ['close'] , df=True)
 rsi = talib.RSI(security_data['close'], timeperiod)
 
 return rsi
 
 | 
KDJ指标
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | def KDJ(stock, timeperiod=14):'''
 计算KDJ指标
 '''
 security_data = attribute_history(stock, timeperiod*2, '1d', ['close', 'high', 'low'], df=True)
 k, d = talib.STOCH(security_data['high'].values,
 security_data['low'].values,
 security_data['close'].values,
 fastk_period=9,
 slowk_period=2*3-1,
 slowk_matype=1,
 slowd_period=2*3-1,
 slowd_matype=1)
 return k, d
 
 | 
KDJ使用talib库计算的时候需要注意一下参数的设置,如果使用默认参数,则算出来的数值与通达信等软件上的不一样,具体可以参考:
https://xueqiu.com/1747761477/198676825