def red_head_index(self, limit_setting, type='weekly', crawling_domain='yahoo'): ### Init ### category_search_list = [] max_vol_times = limit_setting['max_vol_times'] stock_categories = limit_setting['stock_categories'] price_higher_limit = limit_setting['price_higher_limit'] price_lower_limit = limit_setting['price_lower_limit'] vol_lower_limit = limit_setting['vol_lower_limit'] ###-init my_category_crawler = CategoryCrawler() my_histories_crawler = HistoriesCrawler() my_analysis = AnalysisUtils() for category_id in stock_categories: stock_items = my_category_crawler.get_stock_id(category_id) for stock_id in stock_items: print "==========%s==========" % (stock_id) stock = my_histories_crawler.get_price_histories(stock_id, type, crawling_domain) now_inf, some_inf = my_analysis.get_last_max_volume(stock, stock_id, type, max_vol_times) if len(now_inf) > 0 and len(some_inf) > 0: ### limit ### now_price = float(now_inf[0]['inf']['close']) before_price = float(some_inf[0]['inf']['high']) now_vol = int(now_inf[0]['inf']['volume']) if (now_price < price_lower_limit) or (now_price > price_higher_limit) or (now_vol < vol_lower_limit) or (now_price < before_price): continue ###-limit print now_inf for a in some_inf: print a
alert_line_times = 4 if __name__ == '__main__': if sys.argv > 1: stock_id = sys.argv[1] if sys.argv < 3: pv_type = 'weekly' else: pv_type = sys.argv[2] else: print "Please give me stock id!" sys.exit() my_analysis = AnalysisUtils() my_histories_crawler = HistoriesCrawler() stock_d = my_histories_crawler.get_price_histories(stock_id, 'daily') stock_user_type = my_histories_crawler.get_price_histories(stock_id, pv_type) now_inf, some_inf = my_analysis.get_last_max_volume(stock_user_type, stock_id, pv_type, alert_line_times) least_date = sorted(stock_d[stock_id]['data'], reverse=True)[0] now_price = stock_d[stock_id]['data'][least_date]['close'] support_pressure_price = some_inf[0]['inf']['high'] print "=====%s(%s)=====" % (stock_id, pv_type) print "Now price:[%s]" % now_price print "Alert price:%s" % support_pressure_price if now_price > support_pressure_price: print "*** > Buy ***"