def nyse_add_and_substract(self): ans = DateUtils.nyse_add(datetime(2009, 4, 13), 5) self.assertEquals(ans, datetime(2009, 4, 20)) ans = DateUtils.nyse_substract(datetime(2009, 4, 13), 5) self.assertEquals(ans, datetime(2009, 4, 3)) ans = DateUtils.nyse_add(datetime(1990, 10, 1), 7) self.assertEquals(ans, datetime(1990, 10, 10)) ans = DateUtils.nyse_substract(datetime(1990, 10, 1), 3) self.assertEquals(ans, datetime(1990, 9, 26))
def create_trades_from_event(self, eventList, eventDayAction='Buy', eventDayShares=100, actionAfter='Sell', daysAfter=5, sharesAfter=100, actionBefore=None, daysBefore=5, sharesBefore=100): ''' Creates trades using an event list; usually from the EventFinder. Also creates aditional order after and before of the event as defined by the user Parameters ---------- eventList: pandas.Series ''' self.trades = pd.DataFrame(index=eventList.index, columns=['symbol', 'action', 'num_of_shares']) self.trades['symbol'] = eventList self.trades['action'] = eventDayAction self.trades['num_of_shares'] = eventDayShares # TODO: Actions BEFORE if actionAfter is not None: dicts = [] for idx, row in self.trades.iterrows(): after_date = DateUtils.nyse_add(idx.to_pydatetime(), daysAfter) after = pd.DataFrame([ {'symbol': row['symbol'], 'action': actionAfter, 'num_of_shares': sharesAfter}], index=[after_date], columns=self.trades.columns) self.trades = self.trades.append(after) self.trades = self.trades.sort()