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)
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())
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)