コード例 #1
0
ファイル: test_commissions.py プロジェクト: ABDieng/zipline
    def test_per_share_no_minimum(self):
        model = PerShare(cost=0.0075, min_trade_cost=None)

        order, txns = self.generate_order_and_txns()

        # make sure each commission is pro-rated
        self.assertAlmostEqual(1.725, model.calculate(order, txns[0]))
        self.assertAlmostEqual(1.275, model.calculate(order, txns[1]))
        self.assertAlmostEqual(0.75, model.calculate(order, txns[2]))
コード例 #2
0
    def test_per_share_no_minimum(self):
        model = PerShare(cost=0.0075, min_trade_cost=None)

        order, txns = self.generate_order_and_txns()

        # make sure each commission is pro-rated
        self.assertAlmostEqual(1.725, model.calculate(order, txns[0]))
        self.assertAlmostEqual(1.275, model.calculate(order, txns[1]))
        self.assertAlmostEqual(0.75, model.calculate(order, txns[2]))
コード例 #3
0
    def test_per_share_shrinking_position(self):
        model = PerShare(cost=0.0075, min_trade_cost=None)

        fill_amounts = [-230, -170, -100]
        order, txns = self.generate_order_and_txns(sid=1,
                                                   order_amount=-500,
                                                   fill_amounts=fill_amounts)
        expected_commissions = [1.725, 1.275, 0.75]

        # make sure each commission is positive and pro-rated
        for fill_amount, expected_commission, txn in zip(
                fill_amounts, expected_commissions, txns):

            commission = model.calculate(order, txn)
            assert round(abs(expected_commission - commission), 7) == 0
            order.filled += fill_amount
            order.commission += commission
コード例 #4
0
    def test_per_share_shrinking_position(self):
        model = PerShare(cost=0.0075, min_trade_cost=None)

        fill_amounts = [-230, -170, -100]
        order, txns = self.generate_order_and_txns(
            sid=1, order_amount=-500, fill_amounts=fill_amounts
        )
        expected_commissions = [1.725, 1.275, 0.75]

        # make sure each commission is positive and pro-rated
        for fill_amount, expected_commission, txn in \
                zip(fill_amounts, expected_commissions, txns):

            commission = model.calculate(order, txn)
            self.assertAlmostEqual(expected_commission, commission)
            order.filled += fill_amount
            order.commission += commission
コード例 #5
0
ファイル: test_commissions.py プロジェクト: daiab/neutron
    def test_per_share_no_minimum(self):
        model = PerShare(cost=0.0075, min_trade_cost=None)

        fill_amounts = [230, 170, 100]
        order, txns = self.generate_order_and_txns(sid=1,
                                                   order_amount=500,
                                                   fill_amounts=fill_amounts)
        expected_commissions = [1.725, 1.275, 0.75]

        # make sure each commission is pro-rated
        for fill_amount, expected_commission, txn in zip(
                fill_amounts,
                expected_commissions,
                txns,
        ):

            commission = model.calculate(order, txn)
            self.assertAlmostEqual(expected_commission, commission)
            order.filled += fill_amount
            order.commission += commission