def stoc_raw(data, interval=14, k_smooth=0, d_smooth=3): K = np.zeros((data.shape[0], )) D = np.zeros((data.shape[0], )) K[:interval] = 50.0 D[:interval] = 50.0 for i in range(interval, data.shape[0]): K[i] = (data[i] - np.min(data[i-interval:i+1])) / (np.max(data[i-interval:i+1]) - np.min(data[i-interval:i+1])) * 100.0 if k_smooth != 0: K = ma_raw(K, k_smooth) D = ma_raw(K, d_smooth) return K, D
def stoc_raw(data, interval=14, k_smooth=0, d_smooth=3): K = np.zeros((data.shape[0], )) D = np.zeros((data.shape[0], )) K[:interval] = 50.0 D[:interval] = 50.0 for i in range(interval, data.shape[0]): K[i] = (data[i] - np.min(data[i - interval:i + 1])) / ( np.max(data[i - interval:i + 1]) - np.min(data[i - interval:i + 1])) * 100.0 if k_smooth != 0: K = ma_raw(K, k_smooth) D = ma_raw(K, d_smooth) return K, D
def bb_raw(data, interval=20, stdev_multiplier=2): stdev = np.zeros(data.shape) for i in range(1, stdev.shape[0]): if i < interval: stdev[i] = np.std(data[0:i+1]) else: stdev[i] = np.std(data[i-interval:i+1]) middle = ma_raw(data, interval) upper = middle + stdev_multiplier * stdev lower = middle - stdev_multiplier * stdev return lower, middle, upper