def run(self,
         symbol,
         market_data_source,
         date_start=datetime.date.today() - datetime.timedelta(days=1),
         date_end=datetime.date.today()):
     symbol_data = DailySymbolData.objects.filter(
         symbol=symbol, data_souce=market_data_source, date=date_end)
     if symbol_data.exists():
         symbol_data = DailySymbolData.objects.get(
             symbol=symbol, data_souce=market_data_source, date=date_end)
         inverted_paper_umbrella_candle = self.is_candlestick_inverted_paper_umbrella(
             symbol_data)
         self.populate_todays_trend_confidence(symbol_data)
         day_difference = get_num_trading_sessions(date_start, date_end,
                                                   symbol,
                                                   market_data_source)
         if day_difference > 0:
             is_previously_upward = symbol_data.is_previously_upward_trend(
                 num_days=day_difference, percent_upward=60)
         else:
             is_previously_upward = True
         if is_previously_upward and inverted_paper_umbrella_candle and self.is_symbol_data_tradeable(
                 symbol_data):
             return (True, self.confidence_metrics, self.extra_info)
         else:
             return (False, self.confidence_metrics, self.extra_info)
     else:
         return (False, self.confidence_metrics, self.extra_info)
 def run(self,
         symbol,
         market_data_source,
         date_start=datetime.date.today() - datetime.timedelta(days=1),
         date_end=datetime.date.today()):
     symbol_data = DailySymbolData.objects.filter(
         symbol=symbol, data_souce=market_data_source, date=date_end)
     if symbol_data.exists():
         symbol_data = DailySymbolData.objects.get(
             symbol=symbol, data_souce=market_data_source, date=date_end)
         is_bullish_engulfing = self.is_bullish_engulfing(symbol_data)
         day_difference = get_num_trading_sessions(date_start, date_end,
                                                   symbol,
                                                   market_data_source)
         if day_difference > 0:
             is_previously_downward = symbol_data.is_previously_downward_trend(
                 num_days=day_difference, percent_downward=60)
         else:
             is_previously_downward = True
         if is_bullish_engulfing and is_previously_downward and self.is_symbol_data_tradeable(
                 symbol_data):
             return (True, self.confidence_metrics, self.extra_info)
         else:
             return (False, self.confidence_metrics, self.extra_info)
     else:
         return (False, self.confidence_metrics, self.extra_info)