Exemple #1
0
class CIndicatorKBV(CIndicator):
    def __init__(self):
        CIndicator.__init__(self)
        self.__FinanzenNet = CFinanzenNet()
        self.__StockDict = dict()
        self._Name = str(self.__class__)

    def getPoints(self, stock):

        """
        check if this stock has already been processed
        """

        if stock in self.__StockDict:
            kbv = self.__StockDict[stock]
        else:
            self.__FinanzenNet.parseFinanzenNet(stock)
            kbv = self.__FinanzenNet.KBV
            self.__StockDict[stock] = kbv

        result = 0

        if kbv == "NA":
            result = 0
            print "Warnung: " + self._Name + ": " + stock.Name + ": Wert nicht verfuegbar"
        elif kbv < 0.6:
            result = 2
        elif kbv < 0.9 and kbv >= 0.6:
            result = 1
        elif kbv < 1.3 and kbv >= 0.9:
            result = 0
        else:
            result = -1

        return result
Exemple #2
0
class CIndicatorKursVor12M(CIndicator):
    def __init__(self):
        CIndicator.__init__(self)
        self.__FinanzenNet = CFinanzenNet()
        self.__StockDict = dict()
        self._Name = str(self.__class__)

    def getPoints(self, stock):
        '''
        check if this stock has already been processed
        '''

        if stock in self.__StockDict:
            return self.__StockDict[stock]

        self.__FinanzenNet.parseFinanzenNet(stock)

        if (self.__FinanzenNet.AktienkursVor12Monaten > 0):

            ratio = self.__FinanzenNet.AktienkursHeute / self.__FinanzenNet.AktienkursVor12Monaten

            if ratio > 1.05:
                result = 1
            elif ratio < 0.95:
                result = -1
            else:
                result = 0

        else:
            result = 0

        self.__StockDict[stock] = result

        return result
Exemple #3
0
class CIndicatorKursVor6M(CIndicator):
    def __init__(self):
        CIndicator.__init__(self)
        self.__FinanzenNet = CFinanzenNet()
        self.__StockDict = dict()
        self._Name = str(self.__class__)

    def getPoints(self, stock):

        """
        check if this stock has already been processed
        """

        if stock in self.__StockDict:
            return self.__StockDict[stock]

        self.__FinanzenNet.parseFinanzenNet(stock)

        if self.__FinanzenNet.AktienkursVor6Monaten > 0:
            ratio = self.__FinanzenNet.AktienkursHeute / self.__FinanzenNet.AktienkursVor6Monaten

            if ratio > 1.05:
                result = 1
            elif ratio < 0.95:
                result = -1
            else:
                result = 0

        else:
            result = 0

        self.__StockDict[stock] = result

        return result
class CIndicator3MonatsReversal(CIndicator):
    def __init__(self):
        CIndicator.__init__(self)

        self.__FinanzenNet = CFinanzenNet()
        self.__StockDict = dict()
        self._Name = str(self.__class__)

    def getPoints(self, stock):

        if stock.isLargeCap == False:
            return 0

        if stock in self.__StockDict:
            return self.__StockDict[stock]

        self.__FinanzenNet.parseFinanzenNet(stock)

        aktieAenderung = [0, 0, 0]
        indexAenderung = [0, 0, 0]

        kleiner = 0
        groesser = 0

        if (self.__FinanzenNet.AktieList[3] > 0):
            for i in [0, 1, 2]:
                aktieAenderung[i] = self.__FinanzenNet.AktieList[
                    i] / self.__FinanzenNet.AktieList[i + 1]
                indexAenderung[i] = self.__FinanzenNet.IndexList[
                    i] / self.__FinanzenNet.IndexList[i + 1]

                if aktieAenderung[i] < indexAenderung[i]:
                    kleiner = kleiner + 1
                elif aktieAenderung[i] > indexAenderung[i]:
                    groesser = groesser + 1

            if kleiner == len(aktieAenderung):
                result = 1
            elif groesser == len(aktieAenderung):
                result = -1
            else:
                result = 0
        else:
            result = 0

        self.__StockDict[stock] = result

        return result
class CIndicator3MonatsReversal(CIndicator):

    def __init__(self):
        CIndicator.__init__(self)
        
        self.__FinanzenNet = CFinanzenNet()
        self.__StockDict = dict()
        self._Name = str(self.__class__)
        
    def getPoints(self, stock):    
        
        if stock.isLargeCap == False:
            return 0
        
        if stock in self.__StockDict:
            return self.__StockDict[stock]
            
        self.__FinanzenNet.parseFinanzenNet(stock)
        
        aktieAenderung = [0, 0, 0]
        indexAenderung = [0,0,0]
        
        kleiner = 0
        groesser = 0
        
        if(self.__FinanzenNet.AktieList[3] > 0):
            for i in [0,1,2]:
                aktieAenderung[i] = self.__FinanzenNet.AktieList[i] / self.__FinanzenNet.AktieList[i+1]
                indexAenderung[i] = self.__FinanzenNet.IndexList[i] / self.__FinanzenNet.IndexList[i+1]
                
                if aktieAenderung[i] < indexAenderung[i]:
                    kleiner = kleiner + 1
                elif aktieAenderung[i] > indexAenderung[i]:
                    groesser = groesser + 1
                
            if kleiner == len(aktieAenderung):
                result = 1
            elif groesser == len(aktieAenderung):
                result = -1
            else:
                result = 0
        else:
            result = 0
                  
        self.__StockDict[stock] = result      
        
        return result   
Exemple #6
0
class CIndicatorKBV(CIndicator):

    def __init__(self):
        CIndicator.__init__(self)
        self.__FinanzenNet = CFinanzenNet()
        self.__StockDict = dict()
        self._Name = str(self.__class__)
        
    def getPoints(self, stock):    
        
        '''
        check if this stock has already been processed
        '''
        
        if stock in self.__StockDict:
            kbv= self.__StockDict[stock]
        else:    
            self.__FinanzenNet.parseFinanzenNet(stock)
            kbv = self.__FinanzenNet.KBV
            self.__StockDict[stock] = kbv
        
        result = 0
        
        if kbv == "NA":
            result = 0
            print "Warnung: " + self._Name + ": " + stock.Name + ": Wert nicht verfuegbar"
        elif kbv < 0.6:
            result = 2
        elif (kbv < 0.9 and kbv >= 0.6):
            result = 1
        elif (kbv < 1.3 and kbv >= 0.9):
            result = 0
        else:
            result = -1
        
        
        return result