def trigger(self): close = self.data['Close'] res = peakdetect(y_axis=self.wma, lookahead=5) maxpeaks = res[0] minpeaks = res[1] signal_graph = [] signals_trade_buy = [] signals_trade_sell = [] signals = np.zeros(close.shape) for peak in maxpeaks: signals_trade_sell.append({'x': float(peak[0]), 'y': peak[1]}) signals[peak[0]] = 2 for peak in minpeaks: signals_trade_buy.append({'x': float(peak[0]), 'y': peak[1]}) signals[peak[0]] = 1 prevSignal = 0 for i in range(len(close)): if signals[i] != 0: prevSignal = signals[i] signals[i] = prevSignal signal_graph.append({'data': signals_trade_buy, 'type': 'signal-trade-buy', 'name': 'signal-trade-buy', 'id': 'main'}) signal_graph.append({'data': signals_trade_sell, 'type': 'signal-trade-sell', 'name': 'signal-trade-sell', 'id': 'main'}) traderet = trade_with_signals(self.data, signals) return signal_graph, signals, traderet
def trigger(self): close = self.data['Close'] efi = self.efi res = peakdetect(y_axis=close, lookahead=10) res = res[0] signals_efi_bull = [] signals_efi_bear = [] signals_main_bull = [] signals_main_bear = [] signals_trade_buy = [] signals_trade_sell = [] signal_graph = [] signals = np.zeros(close.shape) for i in range(0, len(res)-1, 1): peak = res[i] nextpeak = res[i+1] if peak[1] > nextpeak[1] and self.efi[peak[0]] < self.efi[nextpeak[0]]: signals_main_bear.append({'x1': float(peak[0]), 'y1': peak[1], 'x2': float(nextpeak[0]), 'y2': nextpeak[1]}) signals_efi_bull.append({'x1': float(peak[0]), 'y1': self.efi[peak[0]], 'x2': float(nextpeak[0]), 'y2': self.efi[nextpeak[0]]}) signals[peak[0]:nextpeak[0]] = 2 if peak[1] < nextpeak[1] and self.efi[peak[0]] > self.efi[nextpeak[0]]: signals_main_bull.append({'x1': float(peak[0]), 'y1': peak[1], 'x2': float(nextpeak[0]), 'y2': nextpeak[1]}) signals_efi_bear.append({'x1': float(peak[0]), 'y1': self.efi[peak[0]], 'x2': float(nextpeak[0]), 'y2': self.efi[nextpeak[0]]}) signals[peak[0]:nextpeak[0]] = 1 prevsig = 0 for i in range(1, len(efi)): if (efi[i-1] < 0 and efi[i] > 0): #sell if prevsig != 2: signals_trade_sell.append({'x': i, 'y': efi[i]}) prevsig = 2 elif efi[i-1] > 0 and efi[i] < 0: #overbought end, sell start if prevsig != 1: signals_trade_buy.append({'x': i, 'y': efi[i]}) prevsig = 1 signals[i] = prevsig signal_graph.append({'data': signals_efi_bull, 'type': 'divergence_bull', 'name': 'divergence', 'id': self.ti.pk}) signal_graph.append({'data': signals_main_bull, 'type': 'divergence_bull', 'name': 'divergence', 'id': 'main'}) signal_graph.append({'data': signals_efi_bear, 'type': 'divergence_bear', 'name': 'divergence', 'id': self.ti.pk}) signal_graph.append({'data': signals_main_bear, 'type': 'divergence_bear', 'name': 'divergence', 'id': 'main'}) signal_graph.append({'data': signals_trade_buy, 'type': 'signal-trade-buy', 'name': 'signal-trade-buy', 'id': self.ti.pk}) signal_graph.append({'data': signals_trade_sell, 'type': 'signal-trade-sell', 'name': 'signal-trade-sell', 'id': self.ti.pk}) traderet = trade_with_signals(self.data, signals) return signal_graph, signals, traderet
def trigger(self): close = self.data['Close'] date = self.data['Date'] res = peakdetect(y_axis=close, lookahead=10) res = res[0] signals_x1 = [] signals_x2 = [] signals_y1 = [] signals_y2 = [] signals_main_y1 = [] signals_main_y2 = [] signal_graph = [] print(signal_graph) for i in range(len(res) - 1): peak = res[i] nextpeak = res[i + 1] if (peak[1] > nextpeak[1] and close[peak[0]] < close[nextpeak[0]] ) or (peak[1] < nextpeak[1] and close[peak[0]] > close[nextpeak[0]]): signals_x1.append(date[peak[0]]) signals_x2.append(date[nextpeak[0]]) signals_y1.append(peak[1]) signals_y2.append(nextpeak[1]) signals_main_y1.append(self.ao[peak[0]]) signals_main_y2.append(self.ao[nextpeak[0]]) signal_graph.append({ 'x1': signals_x1, 'y1': signals_y1, 'x2': signals_x2, 'y2': signals_y2, 'type': 'signal-line', 'name': 'ao_divergence', 'id': 'ao' }) signal_graph.append({ 'x1': signals_x1, 'y1': signals_main_y1, 'x2': signals_x2, 'y2': signals_main_y2, 'type': 'signal-line', 'name': 'ao_divergence', 'id': 'main' }) return signal_graph
def trigger(self): close = self.data['Close'] res = peakdetect(y_axis=close, lookahead=10) res = res[0] signals_acc_bull = [] signals_acc_bear = [] signals_main_bull = [] signals_main_bear = [] signal_graph = [] signals = np.zeros(close.shape) for i in range(0, len(res)-1, 1): peak = res[i] nextpeak = res[i+1] if peak[1] > nextpeak[1] and self.acc[peak[0]] < self.acc[nextpeak[0]]: signals_main_bear.append({'x1': float(peak[0]), 'y1': peak[1], 'x2': float(nextpeak[0]), 'y2': nextpeak[1]}) signals_acc_bull.append({'x1': float(peak[0]), 'y1': self.acc[peak[0]], 'x2': float(nextpeak[0]), 'y2': self.acc[nextpeak[0]]}) signals[peak[0]:nextpeak[0]] = 2 if peak[1] < nextpeak[1] and self.acc[peak[0]] > self.acc[nextpeak[0]]: signals_main_bull.append({'x1': float(peak[0]), 'y1': peak[1], 'x2': float(nextpeak[0]), 'y2': nextpeak[1]}) signals_acc_bear.append({'x1': float(peak[0]), 'y1': self.acc[peak[0]], 'x2': float(nextpeak[0]), 'y2': self.acc[nextpeak[0]]}) signals[peak[0]:nextpeak[0]] = 1 signal_graph.append({'data': signals_acc_bull, 'type': 'divergence_bull', 'name': 'divergence', 'id': self.ti.pk}) signal_graph.append({'data': signals_main_bull, 'type': 'divergence_bull', 'name': 'divergence', 'id': 'main'}) signal_graph.append({'data': signals_acc_bear, 'type': 'divergence_bear', 'name': 'divergence', 'id': self.ti.pk}) signal_graph.append({'data': signals_main_bear, 'type': 'divergence_bear', 'name': 'divergence', 'id': 'main'}) traderet = trade_with_signals(self.data, signals) return signal_graph, signals, traderet
def trigger(self, ovb, ovs): stoch = self.stoch close = self.data['Close'] res = peakdetect(y_axis=close, lookahead=10) res = res[0] signals_ovbs = [] signals_ovbe = [] signals_ovss = [] signals_ovse = [] signal_graph = [] signals = [] # 0: stop 1: buy 2: sell signals_stoch_bull = [] signals_stoch_bear = [] signals_main_bull = [] signals_main_bear = [] prevsig = 0 signals = np.zeros(close.shape) for i in range(0, len(res)-1, 1): peak = res[i] nextpeak = res[i+1] if peak[1] > nextpeak[1] and self.stoch[peak[0]] < self.stoch[nextpeak[0]]: signals_main_bear.append({'x1': float(peak[0]), 'y1': peak[1], 'x2': float(nextpeak[0]), 'y2': nextpeak[1]}) signals_stoch_bull.append({'x1': float(peak[0]), 'y1': self.stoch[peak[0]], 'x2': float(nextpeak[0]), 'y2': self.stoch[nextpeak[0]]}) signals[peak[0]:nextpeak[0]] = 1 if peak[1] < nextpeak[1] and self.stoch[peak[0]] > self.stoch[nextpeak[0]]: signals_main_bull.append({'x1': float(peak[0]), 'y1': peak[1], 'x2': float(nextpeak[0]), 'y2': nextpeak[1]}) signals_stoch_bear.append({'x1': float(peak[0]), 'y1': self.stoch[peak[0]], 'x2': float(nextpeak[0]), 'y2': self.stoch[nextpeak[0]]}) signals[peak[0]:nextpeak[0]] = 2 for i in range(1, len(stoch)): if (stoch[i] >= ovb and stoch[i-1] < ovb): #overbought start signals_ovbs.append({'x': i, 'y': stoch[i]}) prevsig = 0 elif (stoch[i-1] > ovb and stoch[i] <= ovb): #overbought end, sell start signals_ovbe.append({'x': i, 'y': stoch[i]}) prevsig = 2 elif (stoch[i-1] > ovs and stoch[i] <= ovs): #oversold start signals_ovss.append({'x': i, 'y': stoch[i]}) prevsig = 0 elif (stoch[i-1] < ovs and stoch[i] >= ovs): #oversold end, buy start signals_ovse.append({'x': i, 'y': stoch[i]}) prevsig = 1 signals[i] = prevsig signal_graph.append({'data': signals_stoch_bull, 'type': 'divergence_bull', 'name': 'divergence', 'id': self.ti.pk}) signal_graph.append({'data': signals_main_bull, 'type': 'divergence_bull', 'name': 'divergence', 'id': 'main'}) signal_graph.append({'data': signals_stoch_bear, 'type': 'divergence_bear', 'name': 'divergence', 'id': self.ti.pk}) signal_graph.append({'data': signals_main_bear, 'type': 'divergence_bear', 'name': 'divergence', 'id': 'main'}) signal_graph.append({'data': signals_ovbs, 'type': 'signal-ovbs', 'name': 'signal-ovbs', 'id': self.ti.pk}) signal_graph.append({'data': signals_ovbe, 'type': 'signal-ovbe', 'name': 'signal-ovbe', 'id': self.ti.pk}) signal_graph.append({'data': signals_ovss, 'type': 'signal-ovss', 'name': 'signal-ovss', 'id': self.ti.pk}) signal_graph.append({'data': signals_ovse, 'type': 'signal-ovse', 'name': 'signal-ovse', 'id': self.ti.pk}) signal_graph.append({'y': [ovb], 'type': 'signal-threshold-ovb', 'name': 'signal-threshold-ovb', 'id': self.ti.pk}) signal_graph.append({'y': [ovs], 'type': 'signal-threshold-ovs', 'name': 'signal-threshold-ovs', 'id': self.ti.pk}) traderet = trade_with_signals(self.data, signals) return signal_graph, signals, traderet