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
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
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
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