Exemplo n.º 1
0
    def test_get_positions_from_forecasts(self):
        fx = pd.DataFrame([2.0] * 10, dt_range1)
        price = pd.DataFrame(
            [100, 103, 105, 106, 110, 105, np.nan, 106, 120, np.nan, 142],
            dt_range2)
        forecast = pd.DataFrame(
            [np.nan, np.nan, np.nan, np.nan, 10.0,
                10.0, 15.0, 15.0, 5.0, 0.0, -5.0],
            dt_range2)
        value_of_price_point = 150.0

        daily_return_volatility = None
        position = get_positions_from_forecasts(price,
                                                daily_return_volatility,
                                                forecast,
                                                fx,
                                                value_of_price_point,
                                                min_periods=1)

        # TODO this has been divided by ten to what was here previously, error?
        expected_pos = [np.nan, np.nan, np.nan, np.nan,
                        252.34937866824254,
                        90.572296272461699,
                        135.85844440869255,
                        135.85844440869255,
                        24.878044993282998,
                        0.0,
                        -24.878044993282995]

        np.testing.assert_almost_equal(position.position.values,
                                       expected_pos)
    def test_get_positions_from_forecasts(self):
        fx = pd.DataFrame([2.0] * 10, dt_range1)
        price = pd.DataFrame(
            [100, 103, 105, 106, 110, 105, np.nan, 106, 120, np.nan,
             142], dt_range2)
        forecast = pd.DataFrame([
            np.nan, np.nan, np.nan, np.nan, 10.0, 10.0, 15.0, 15.0, 5.0, 0.0,
            -5.0
        ], dt_range2)
        value_of_price_point = 150.0

        daily_return_volatility = None
        position = get_positions_from_forecasts(
            price,
            daily_return_volatility,
            forecast,
            fx,
            value_of_price_point,
            min_periods=1)

        # TODO this has been divided by ten to what was here previously, error?
        expected_pos = [
            np.nan, np.nan, np.nan, np.nan, 252.34937866824254,
            90.572296272461699, 135.85844440869255, 135.85844440869255,
            24.878044993282998, 0.0, -24.878044993282995
        ]

        np.testing.assert_almost_equal(position.position.values, expected_pos)
Exemplo n.º 3
0
    def test_get_positions_from_forecasts(self):
        fx = pd.DataFrame(
            [2.0] * 10, pd.date_range(start=pd.datetime(2014, 12, 30), periods=10))
        price = pd.DataFrame([100, 103, 105, 106, 110, 105, np.nan, 106,
                              120, np.nan, 142], pd.date_range(start=pd.datetime(2015, 1, 1), periods=11))
        forecast = pd.DataFrame([np.nan, np.nan, np.nan, np.nan, 10.0, 10.0, 15.0, 15.0,
                                 5.0, 0.0, -5.0], pd.date_range(start=pd.datetime(2015, 1, 1), periods=11))
        value_of_price_point = 150.0
        position = get_positions_from_forecasts(
            price, None, forecast, fx, value_of_price_point, min_periods=1)

        self.assertAlmostEqual(list(position.position.values)[4:], [
                               2523.4937866824253, 905.72296272461699, 1358.5844440869255, 1358.5844440869255, 248.78044993282995, 0.0, -248.78044993282995])