Exemple #1
0
    def test_blotter_eod_cancellation(self):
        blotter = Blotter('minute',
                          self.env.asset_finder,
                          cancel_policy=EODCancel())
        asset_24 = blotter.asset_finder.retrieve_asset(24)

        # Make two orders for the same sid, so we can test that we are not
        # mutating the orders list as we are cancelling orders
        blotter.order(asset_24, 100, MarketOrder())
        blotter.order(asset_24, -100, MarketOrder())

        self.assertEqual(len(blotter.new_orders), 2)
        order_ids = [order.id for order in blotter.open_orders[asset_24]]

        self.assertEqual(blotter.new_orders[0].status, ORDER_STATUS.OPEN)
        self.assertEqual(blotter.new_orders[1].status, ORDER_STATUS.OPEN)

        blotter.execute_cancel_policy(BAR)
        self.assertEqual(blotter.new_orders[0].status, ORDER_STATUS.OPEN)
        self.assertEqual(blotter.new_orders[1].status, ORDER_STATUS.OPEN)

        blotter.execute_cancel_policy(DAY_END)
        for order_id in order_ids:
            order = blotter.orders[order_id]
            self.assertEqual(order.status, ORDER_STATUS.CANCELLED)
Exemple #2
0
def initialize(context):

    set_benchmark(symbol("SPY"))

    set_cancel_policy(EODCancel())
    # set_max_order_count(1)

    # set_max_leverage(1.0)

    context.longSpread = False
    context.shortSpread = False

    context.longStock = symbol('SH')
    context.shortStock = symbol('SPY')
    #
    # schedule_function(fnTripleMovingAverageCrossover,
    #                   date_rules.every_day(),
    #                   time_rules.market_open(minutes = 20))

    schedule_function(
        handle_data,
        date_rules.every_day(),
        # time_rules.market_close(minutes = 45))
        time_rules.market_open(minutes=45))

    # schedule_function(fnLiquidatePositions,
    #                   date_rules.every_day())
    #                   time_rules.market_open(minutes = 1))

    schedule_function(recordVars, date_rules.every_day())
Exemple #3
0
    def test_blotter_eod_cancellation(self):
        blotter = SimulationBlotter(self.sim_params, cancel_policy=EODCancel())

        # Make two orders for the same asset, so we can test that we are not
        # mutating the orders list as we are cancelling orders
        blotter.order(self.asset_24, 100, MarketOrder())
        blotter.order(self.asset_24, -100, MarketOrder())

        self.assertEqual(len(blotter.new_orders), 2)
        order_ids = [order.id for order in blotter.open_orders[self.asset_24]]

        self.assertEqual(blotter.new_orders[0].status, ORDER_STATUS.OPEN)
        self.assertEqual(blotter.new_orders[1].status, ORDER_STATUS.OPEN)

        blotter.execute_cancel_policy(BAR)
        self.assertEqual(blotter.new_orders[0].status, ORDER_STATUS.OPEN)
        self.assertEqual(blotter.new_orders[1].status, ORDER_STATUS.OPEN)

        blotter.execute_cancel_policy(SESSION_END)
        for order_id in order_ids:
            order = blotter.orders[order_id]
            self.assertEqual(order.status, ORDER_STATUS.CANCELLED)
 def test_eod_cancel(self):
     cancel_policy = EODCancel()
     self.assertTrue(cancel_policy.should_cancel(DAY_END))
     self.assertFalse(cancel_policy.should_cancel(BAR))
 def test_eod_cancel(self):
     cancel_policy = EODCancel()
     self.assertTrue(cancel_policy.should_cancel(SESSION_END))
     self.assertFalse(cancel_policy.should_cancel(BAR))
def test_eod_cancel():
    cancel_policy = EODCancel()
    assert cancel_policy.should_cancel(SESSION_END)
    assert not cancel_policy.should_cancel(BAR)