mirror of
https://github.com/microsoft/qlib.git
synced 2026-07-13 15:56:57 +08:00
This commit is contained in:
@@ -70,7 +70,7 @@ class EnhancedIndexingOptimizer(BaseOptimizer):
|
|||||||
|
|
||||||
def __call__(
|
def __call__(
|
||||||
self,
|
self,
|
||||||
u: np.ndarray,
|
u: Union[np.ndarray, pd.Series],
|
||||||
F: np.ndarray,
|
F: np.ndarray,
|
||||||
covB: np.ndarray,
|
covB: np.ndarray,
|
||||||
varU: np.ndarray,
|
varU: np.ndarray,
|
||||||
@@ -80,7 +80,7 @@ class EnhancedIndexingOptimizer(BaseOptimizer):
|
|||||||
) -> Union[np.ndarray, pd.Series]:
|
) -> Union[np.ndarray, pd.Series]:
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
u (np.ndarray): expected returns (a.k.a., alpha)
|
u (np.ndarray or pd.Series): expected returns (a.k.a., alpha)
|
||||||
F, covB, varU (np.ndarray): see StructuredCovEstimator
|
F, covB, varU (np.ndarray): see StructuredCovEstimator
|
||||||
w0 (np.ndarray): initial weights (for turnover control)
|
w0 (np.ndarray): initial weights (for turnover control)
|
||||||
w_bench (np.ndarray): benchmark weights
|
w_bench (np.ndarray): benchmark weights
|
||||||
@@ -91,6 +91,10 @@ class EnhancedIndexingOptimizer(BaseOptimizer):
|
|||||||
"""
|
"""
|
||||||
assert inds_onehot is not None or self.inds_dev is None, "Industry onehot vector is required."
|
assert inds_onehot is not None or self.inds_dev is None, "Industry onehot vector is required."
|
||||||
|
|
||||||
|
# transform dataframe into array
|
||||||
|
if isinstance(u, pd.Series):
|
||||||
|
u = u.values
|
||||||
|
|
||||||
# scale alpha to match volatility
|
# scale alpha to match volatility
|
||||||
if self.scale_alpha:
|
if self.scale_alpha:
|
||||||
u = u / u.std()
|
u = u / u.std()
|
||||||
|
|||||||
Reference in New Issue
Block a user