Esempio n. 1
0
    def test_lookup_future_in_chain(self):
        metadata = {
            2: {
                'symbol': 'ADN15',
                'root_symbol': 'AD',
                'asset_type': 'future',
                'expiration_date': pd.Timestamp('2015-06-15', tz='UTC'),
                'start_date': pd.Timestamp('2015-01-01', tz='UTC')
            },
            1: {
                'symbol': 'ADV15',
                'root_symbol': 'AD',
                'asset_type': 'future',
                'expiration_date': pd.Timestamp('2015-09-14', tz='UTC'),
                'start_date': pd.Timestamp('2015-01-01', tz='UTC')
            },
            0: {
                'symbol': 'ADF16',
                'root_symbol': 'AD',
                'asset_type': 'future',
                'expiration_date': pd.Timestamp('2015-12-14', tz='UTC'),
                'start_date': pd.Timestamp('2015-01-01', tz='UTC')
            },

        }

        finder = AssetFinder(metadata=metadata)
        dt = pd.Timestamp('2015-06-19', tz='UTC')

        # Check that the primary and secondary contracts are as expected
        primary = finder.lookup_future_in_chain('AD', dt, 0)
        secondary = finder.lookup_future_in_chain('AD', dt, 1)
        self.assertEqual(primary.sid, 1)
        self.assertEqual(secondary.sid, 0)

        # Check that we get None for an invalid contract num
        self.assertIsNone(finder.lookup_future_in_chain('AD', dt, -10))
        self.assertIsNone(finder.lookup_future_in_chain('AD', dt, 10))
        self.assertIsNone(finder.lookup_future_in_chain('CL', dt, 1))
Esempio n. 2
0
    def test_lookup_future_in_chain(self):
        metadata = {
            2: {
                'symbol': 'ADN15',
                'root_symbol': 'AD',
                'asset_type': 'future',
                'expiration_date': pd.Timestamp('2015-06-15', tz='UTC')
            },
            1: {
                'symbol': 'ADV15',
                'root_symbol': 'AD',
                'asset_type': 'future',
                'expiration_date': pd.Timestamp('2015-09-14', tz='UTC')
            },
            0: {
                'symbol': 'ADF16',
                'root_symbol': 'AD',
                'asset_type': 'future',
                'expiration_date': pd.Timestamp('2015-12-14', tz='UTC')
            },

        }

        finder = AssetFinder(metadata=metadata)
        dt = pd.Timestamp('2015-06-19', tz='UTC')

        # Check that the primary and secondary contracts are as expected
        primary = finder.lookup_future_in_chain('AD', dt, 1)
        secondary = finder.lookup_future_in_chain('AD', dt, 2)
        self.assertEqual(primary.sid, 1)
        self.assertEqual(secondary.sid, 0)

        # Check that we get None for an invalid contract num
        self.assertIsNone(finder.lookup_future_in_chain('AD', dt, 0))
        self.assertIsNone(finder.lookup_future_in_chain('AD', dt, -10))
        self.assertIsNone(finder.lookup_future_in_chain('AD', dt, 10))
        self.assertIsNone(finder.lookup_future_in_chain('CL', dt, 1))