예제 #1
0
 def __new__(cls,
             target,
             regression_length,
             allowed_missing_percentage=0.25):
     daily_returns = Returns(
         window_length=2,
         mask=(AssetExists() | SingleAsset(asset=target)),
     )
     allowed_missing_count = int(allowed_missing_percentage *
                                 regression_length)
     return super().__new__(
         cls,
         inputs=[daily_returns, daily_returns[target]],
         window_length=regression_length,
         allowed_missing_count=allowed_missing_count,
     )
예제 #2
0
 def __new__(cls,
             target,
             returns_length,
             regression_length,
             mask=NotSpecified):
     # Use the `SingleAsset` filter here because it protects against
     # inputting a non-existent target asset.
     returns = Returns(
         window_length=returns_length,
         mask=(AssetExists() | SingleAsset(asset=target)),
     )
     return super().__new__(
         cls,
         dependent=returns,
         independent=returns[target],
         regression_length=regression_length,
         mask=mask,
     )
예제 #3
0
 def __new__(cls,
             target,
             returns_length,
             correlation_length,
             mask=NotSpecified):
     # Use the `SingleAsset` filter here because it protects against
     # inputting a non-existent target asset.
     returns = Returns(
         window_length=returns_length,
         mask=(AssetExists() | SingleAsset(asset=target)),
     )
     return super(RollingSpearmanOfReturns, cls).__new__(
         cls,
         base_factor=returns,
         target=returns[target],
         correlation_length=correlation_length,
         mask=mask,
     )
예제 #4
0
    def __new__(cls,
                target,
                returns_length,
                regression_length,
                mask=NotSpecified,
                **kwargs):
        if mask is NotSpecified:
            mask = AssetExists()

        # Make sure we do not filter out the asset of interest.
        mask = mask | SingleAsset(asset=target)

        return super(RollingLinearRegressionOfReturns, cls).__new__(
            cls,
            target=target,
            inputs=[Returns(window_length=returns_length)],
            window_length=regression_length,
            mask=mask,
            **kwargs)