def calcEMA(stock_code, date, period): if ITERATOR_COUNT >= MAX_ITERATOR: EXPMA = MA.calcMA(stock_code, date, period) # print "MIN Date: " +date+ " MA:"+ str(EXPMA) return EXPMA else: global ITERATOR_COUNT ITERATOR_COUNT = ITERATOR_COUNT + 1 close_today = bd.getBasicData("CLOSE_TODAY", stock_code, date) pday = du.convertDateToString(bd.getStockDate(stock_code, date, 1), "%Y-%m-%d") EXPMA_pday = calcEMA(stock_code, pday, period) EXPMA = 2 * (close_today - EXPMA_pday) / (period + 1) + EXPMA_pday # print date + ": EXPMA: "+str(EXPMA_PDAY)+" CLOSE: " + str(CLOSE_TODAY) + " EXPMA = " +str(EXPMA) return round(EXPMA, 3)
def calcBBI(stock_code, date, period1, period2, period3, period4): MA1 = MA.calcMA(stock_code, date, period1) MA2 = MA.calcMA(stock_code, date, period2) MA3 = MA.calcMA(stock_code, date, period3) MA4 = MA.calcMA(stock_code, date, period4) return round((MA1 + MA2 + MA3 + MA4) / 4, 3)
def calcDMA(stock_code, date, period1, period2): MA1 = MA.calcMA(stock_code, date, period1) MA2 = MA.calcMA(stock_code, date, period2) DMA = MA1 - MA2 return round(DMA, 3)