Ejemplo n.º 1
0
 def test_PositionConcentration_3(self):
     """多头权重"""
     min_weights = pd.Series()
     max_weights = pd.Series()
     cons_obj = PositionConcentration(min_weights, max_weights, 0.1, 0.5)
     desired_value = 0.20
     desired_weights = pd.Series([0.1] * 5 + [0.5] * 2, index=self.stocks)
     self.check(cons_obj, desired_value, desired_weights, self.init_weights)
Ejemplo n.º 2
0
 def test_PositionConcentration_5(self):
     """最小最大分别位于0值二端"""
     min_weights = pd.Series()
     max_weights = pd.Series()
     cons_obj = PositionConcentration(min_weights, max_weights, -0.5, 0.2)
     desired_value = 0.40
     desired_weights = pd.Series([-0.5, -0.2853, 0, 0, 0, 0.2146, 0.5],
                                 index=self.stocks)
     self.check(cons_obj, desired_value, desired_weights, self.init_weights)
Ejemplo n.º 3
0
 def test_PositionConcentration_4(self):
     """空头权重"""
     min_weights = pd.Series()
     max_weights = pd.Series()
     cons_obj = PositionConcentration(min_weights, max_weights, -0.5, -0.1)
     desired_value = 0.37
     desired_weights = pd.Series(
         [-0.5, -0.2107, -0.1, -0.1, 0, 0.089275, 0.5], index=self.stocks)
     self.check(cons_obj, desired_value, desired_weights, self.init_weights)
Ejemplo n.º 4
0
 def test_PositionConcentration_2(self):
     """部分指定权重"""
     min_weights = pd.Series([-0.4, -0.3, 0.1],
                             index=['000001', '000003', '000004'])
     max_weights = pd.Series([0.1, 0.3], index=['000002', '000004'])
     cons_obj = PositionConcentration(min_weights, max_weights)
     desired_value = 0.37
     desired_weights = pd.Series([-0.4, 0, 0, 0.1, 0.0] + [0.5] * 2,
                                 index=self.stocks)
     self.check(cons_obj, desired_value, desired_weights)
Ejemplo n.º 5
0
 def test_PositionConcentration_1(self):
     """指定所有股票权重"""
     min_weights = pd.Series([0.1, -0.1, 0.1, 0.2, -0.1, 0.2, 0.3],
                             index=self.stocks)
     max_weights = pd.Series([0.3, 0.4, 0.25, 0.25, 0.3, 0.25, 0.4],
                             index=self.stocks)
     cons_obj = PositionConcentration(min_weights, max_weights)
     desired_value = 0.18
     desired_weights = pd.Series([0.1, -0.1, 0.1, 0.2073, 0.3, 0.25, 0.4],
                                 index=self.stocks)
     self.check(cons_obj, desired_value, desired_weights)
Ejemplo n.º 6
0
 def test_PositionConcentration_0(self):
     """验证输入及配置"""
     min_weights = pd.Series([-0.2, 0.1, 0.4],
                             index=['000001', '000003', '000004'])
     max_weights = pd.Series([-0.1, 0.4, 0.3],
                             index=['000001', '000007', '000004'])
     with self.assertRaises(ValueError):
         cons_obj = PositionConcentration(min_weights, max_weights)
         desired_value = 0.19
         desired_weights = pd.Series([-0.2, 0, -0.1] + [0.0] * 3 + [0.4],
                                     index=self.stocks)
         self.check(cons_obj, desired_value, desired_weights)