예제 #1
0
    def ready_position_set(self, symbol, investment, date='2015-01-29'):
        """
        get filled orders from db
        :param symbol: str
        :param investment: str
        """
        query = Q()
        if investment == 'underlying':
            query = Q(underlying__symbol=symbol)
        elif investment == 'future':
            query = Q(future__symbol=symbol)
        elif investment == 'forex':
            query = Q(forex__symbol=symbol)

        filled_orders = FilledOrder.objects.filter(
            Q(trade_summary__date=date) & query)

        if filled_orders.exists():
            self.filled_orders = filled_orders.all()
            self.position_set = PositionSet()
            self.manager = PositionSetManager(self.position_set)
        else:
            self.skipTest(
                "Use 'Unittest' for testing  existing db testing (Empty PositionSet).\n"
            )
            raise ObjectDoesNotExist()
예제 #2
0
파일: tests.py 프로젝트: jack2150/rivers0.2
    def setUp(self):
        TestSetUpDB.setUp(self)

        # set date
        self.date = '2015-04-28'

        # create underlying
        self.underlying = Underlying(symbol='AAPL', company='APPLE INC')

        # create position set
        self.position_set = PositionSet()
        self.position_set.underlying = self.underlying
        self.position_set.name = 'EQUITY'
        self.position_set.spread = 'LONG_STOCK'
        self.position_set.start_date = datetime.strptime(
            '2015-04-13', '%Y-%m-%d').date()
        self.position_set.stop_date = datetime.strptime(
            '2015-04-28', '%Y-%m-%d').date()
        self.position_set.save()

        # create position opinion
        self.position_opinion = self.create_opinion(
            date=Profiler.move_bday(self.date, 1),
            position_set=self.position_set,
            direction='BULL')

        # create profiler now
        self.profiler = Profiler(position_set=self.position_set,
                                 date=self.date)
예제 #3
0
    def create_position_sets(self, date=''):
        """
        Take a list of open orders and make a list of position sets
        group open filled orders by using underlying or future or forex
        :return: list of PositionSet
        """
        for query in self.queries:
            filled_orders = self.open_orders.filter(query)

            # save filled order into position set and all foreign keys
            if filled_orders.exists():
                position_set = PositionSet()
                position_set.manager.filled_orders = filled_orders
                position_set.save()
                position_set.manager.update_foreign_keys(date=date)

                self.open_sets.append(position_set)

        return self.open_sets