示例#1
0
    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()
    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()