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