MCPcopy
hub / github.com/quantopian/zipline / test_blotter_processes_splits

Method test_blotter_processes_splits

tests/test_finance.py:368–401  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

366 )
367
368 def test_blotter_processes_splits(self):
369 blotter = SimulationBlotter(equity_slippage=FixedSlippage())
370
371 # set up two open limit orders with very low limit prices,
372 # one for sid 1 and one for sid 2
373 asset1 = self.asset_finder.retrieve_asset(1)
374 asset2 = self.asset_finder.retrieve_asset(2)
375 asset133 = self.asset_finder.retrieve_asset(133)
376
377 blotter.order(asset1, 100, LimitOrder(10, asset=asset1))
378 blotter.order(asset2, 100, LimitOrder(10, asset=asset2))
379
380 # send in splits for assets 133 and 2. We have no open orders for
381 # asset 133 so it should be ignored.
382 blotter.process_splits([(asset133, 0.5), (asset2, 0.3333)])
383
384 for asset in [asset1, asset2]:
385 order_lists = blotter.open_orders[asset]
386 self.assertIsNotNone(order_lists)
387 self.assertEqual(1, len(order_lists))
388
389 asset1_order = blotter.open_orders[1][0]
390 asset2_order = blotter.open_orders[2][0]
391
392 # make sure the asset1 order didn't change
393 self.assertEqual(100, asset1_order.amount)
394 self.assertEqual(10, asset1_order.limit)
395 self.assertEqual(1, asset1_order.asset)
396
397 # make sure the asset2 order did change
398 # to 300 shares at 3.33
399 self.assertEqual(300, asset2_order.amount)
400 self.assertEqual(3.33, asset2_order.limit)
401 self.assertEqual(2, asset2_order.asset)
402
403
404class SimParamsTestCase(zf.WithTradingCalendars, zf.ZiplineTestCase):

Callers

nothing calls this directly

Calls 6

orderMethod · 0.95
process_splitsMethod · 0.95
SimulationBlotterClass · 0.90
FixedSlippageClass · 0.90
LimitOrderClass · 0.90
retrieve_assetMethod · 0.80

Tested by

no test coverage detected