逆向BollingerBand
使用bollinger band作为indicator,使用过去几天的收盘价来,来计算今天买入和卖出价格. 这两个价格正好是bollinger band的-1和+1的位置.
def reverse_bollinger_band(df_price, ratio=2): A = df_price.shape[0] + 1 B = ratio mean = np.mean(df_price, axis=0) std = np.std(df_price, axis=0) C = (A - 1) * mean D = (A - 1) * (std ** 2 + mean ** 2) B2 = B ** 2 a = (B2 - (A - 1)) * (A - 1) b = 2 * C * (A - B2 - 1) c = A * B2 * D - (B2 + 1) * (C ** 2) common = np.sqrt(b ** 2 - 4 * a * c) r0 = (common - b) * 0.5 / a r1 = (-common - b) * 0.5 / a return (r0, r1)
UPDATE: 完全使用BollingerBand是有问题的。股价在下跌的过程中可能会有很多次buy signal, 但是如果资金不够多的话,只能完全前面几次buy操作,而后面却正是更低的价格。同样在上涨过程中会出现多次sell signal, 但是如果之前持有不够多的话,也会错过在高点卖出。