예제 #1
0
 def event_days_ago(self):
     if not self.event_dates:
         return {}
     resp = {}
     for source, date_list in self.event_dates.iteritems():
         resp[source] = [days_ago(event_date_string) for event_date_string in date_list]
     return resp
예제 #2
0
 def event_days_ago(self):
     if not self.event_dates:
         return {}
     resp = {}
     for source, date_list in self.event_dates.iteritems():
         resp[source] = [days_ago(event_date_string) for event_date_string in date_list]
     return resp
예제 #3
0
 def events_last_week_count(self):
     events_last_week_count = 0
     for my_product in self.products:
         if my_product.event_dates and self.source_name in my_product.event_dates:
             date_list = my_product.event_dates[self.source_name]
             events = [days_ago(event_date_string) for event_date_string in date_list]
             events_last_week = [e for e in events if e <= 7]
             events_last_week_count += len(events_last_week)
     return events_last_week_count
예제 #4
0
 def events_last_week_count(self):
     events_last_week_count = 0
     for my_product in self.products:
         if self.source_name in my_product.event_dates:
             date_list = my_product.event_dates[self.source_name]
             events = [days_ago(event_date_string) for event_date_string in date_list]
             events_last_week = [e for e in events if e <= 7]
             events_last_week_count += len(events_last_week)
     return events_last_week_count
예제 #5
0
 def decide_if_assigned(self, person):
     streak = True
     streak_length = 0
     all_event_days_ago = [days_ago(e) for e in person.get_event_dates()]
     for month in range(0, 10*12):  # do up to 10 years
         streak_length += 1
         relevant_days = [month*30 + day for day in range(0, 30)]
         matching_days_count = len([d for d in all_event_days_ago if d in relevant_days])
         if matching_days_count <= 0:
             # print "broke the streak"
             break
     if streak_length > 1:
         self.assigned = True
         self.candidate_badge.value = streak_length
예제 #6
0
    def set_event_counts(self):
        self.monthly_event_count = 0
        self.weekly_event_count = 0

        event_dates = self.get_event_dates()
        if not event_dates:
            return

        for event_date in event_dates:
            event_days_ago = days_ago(event_date)
            if event_days_ago <= 7:
                self.weekly_event_count += 1
            if event_days_ago <= 30:
                self.monthly_event_count += 1
예제 #7
0
 def decide_if_assigned_threshold(self, person, threshold):
     streak = True
     streak_length = 0
     all_event_days_ago = [days_ago(e) for e in person.get_event_dates()]
     for month in range(0, 10*12):  # do up to 10 years
         streak_length += 1
         relevant_days = [month*30 + day for day in range(0, 30)]
         matching_days_count = len([d for d in all_event_days_ago if d in relevant_days])
         if matching_days_count <= 0:
             # print "broke the streak"
             break
     if streak_length > 1:
         self.assigned = True
         self.candidate_badge.value = streak_length
    def get_initial_liq_portfolio(self):
        stock_sym = self.stock_liq_mat.columns
        startdate = self.start_date.strftime("%Y-%m-%d")
        earlier_date = util.days_ago(28, self.start_date).strftime("%Y-%m-%d")
        sub_mat = self.stock_liq_mat.loc[earlier_date:startdate].values
        mon_grow = (sub_mat[-1, :] - sub_mat[0, :]) / sub_mat[0, :]
        rank = np.argsort(-mon_grow)
        return_list = []
        for i in range(5):
            col = rank[i]
            price = sub_mat[-1, col]
            return_list.append([
                stock_sym[col], price, mon_grow[col],
                self.asset_value / 5 / price
            ])
        self.current_port = return_list

        my_df = pd.DataFrame(return_list)
        my_df.to_csv('current_holding.csv', index=False, header=False)
예제 #9
0
    def set_consistency(self):
        self.consistency = None

        if self.first_publishing_date:
            first_pub_or_2012 = max(self.first_publishing_date.isoformat(),
                                    "2012-01-01T01:00:00")

            months_since_first_pub_or_2012 = days_ago(first_pub_or_2012) / 30
            months_with_event = {}
            for event_date in self.get_event_dates():
                if event_date >= first_pub_or_2012:
                    month_string = event_date[0:7]
                    months_with_event[month_string] = True
            count_months_with_event = len(months_with_event)

            if months_since_first_pub_or_2012:
                self.consistency = count_months_with_event / float(
                    months_since_first_pub_or_2012)

        return self.consistency