def riseStopCheck(self, stocks): # 选出日涨停,且不是连续涨停 check_period = 10 selected_stocks = [] for stock in stocks: high_prices = history_bars(stock, check_period+1, '1d', 'high') close_prices = history_bars(stock, check_period+1, '1d', 'close') # 要求收盘价等于最高价,但要求收盘价高于9.95% if (Utility.isRiseStopNow(close_prices) and close_prices[-1] == high_prices[-1] and not Utility.isContinueRiseStop(close_prices, max_co_present=2)): selected_stocks.append(stock) self.logger.debug('选出当日涨停,且不连续涨停的股票%s' % stock) return selected_stocks
def seekBoardCheck(self, sc_dict): # 涨停卖出规则:买入条件为打板时,只要不能连续涨停就卖出 sell_stocks = [] for stock in sc_dict.keys(): close = history_bars(stock, self.period, '1d', 'close') buy_reason = sc_dict[stock][2] if buy_reason == '打板' \ and not Utility.isRiseStopNow(close): sell_stocks.append(stock) # 从可卖股票中删除打板股票,以免对后续处理造成影响 for stock in sell_stocks: sc_dict.pop(stock) return sell_stocks