Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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
        
Exemplo n.º 5
0
    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