| 79 | plt.show() |
| 80 | |
| 81 | def implement_bb_strategy(data, lower_bb, upper_bb): |
| 82 | buy_price = [] |
| 83 | sell_price = [] |
| 84 | bb_signal = [] |
| 85 | signal = 0 |
| 86 | |
| 87 | for i in range(len(data)): |
| 88 | if data[i-1] > lower_bb[i-1] and data[i] < lower_bb[i]: |
| 89 | if signal != 1: |
| 90 | buy_price.append(data[i]) |
| 91 | sell_price.append(np.nan) |
| 92 | signal = 1 |
| 93 | bb_signal.append(signal) |
| 94 | else: |
| 95 | buy_price.append(np.nan) |
| 96 | sell_price.append(np.nan) |
| 97 | bb_signal.append(0) |
| 98 | elif data[i-1] < upper_bb[i-1] and data[i] > upper_bb[i]: |
| 99 | if signal != -1: |
| 100 | buy_price.append(np.nan) |
| 101 | sell_price.append(data[i]) |
| 102 | signal = -1 |
| 103 | bb_signal.append(signal) |
| 104 | else: |
| 105 | buy_price.append(np.nan) |
| 106 | sell_price.append(np.nan) |
| 107 | bb_signal.append(0) |
| 108 | else: |
| 109 | buy_price.append(np.nan) |
| 110 | sell_price.append(np.nan) |
| 111 | bb_signal.append(0) |
| 112 | |
| 113 | return buy_price, sell_price, bb_signal |
| 114 | |
| 115 | buy_price, sell_price, bb_signal = implement_bb_strategy(tsla['close'], tsla['lower_bb'], tsla['upper_bb']) |
| 116 | |