Source code for mizarlabs.transformers.microstructural_features.second_generation
import numpy as np
import pandas as pd
from mizarlabs.transformers.utils import check_missing_columns
from sklearn.base import BaseEstimator
from sklearn.base import TransformerMixin
from mizarlabs import static
[docs]class KyleLambda(BaseEstimator, TransformerMixin):
"""
Kyle lambda liquidity estimator (p.286).
See page 286 of Advances in Financial Machine Learning by Marcos Lopez de
Prado for additional information.
:param window: The window size
:type window: int
:param close_column_name: The name of the close column
:type close_column_name: str, optional
:param base_asset_volume_column_name: The name of the base asset volume column
:type base_asset_volume_column_name: str, optional
"""
def __init__(
self,
window: int = 20,
close_column_name: str = "close",
base_asset_volume_column_name: str = "base_asset_volume",
):
self.window = window
self.close_column_name = close_column_name
self.base_asset_volume_column_name = base_asset_volume_column_name
[docs] def fit(self, X, y=None, **fit_params):
return self
[docs]class AmihudLambda(BaseEstimator, TransformerMixin):
"""
Amihud Lambda liquidity estimator (p.288).
See page 288 of Advances in Financial Machine Learning by Marcos Lopez de
Prado for additional information.
:param window: The window size
:type window: int
:param close_column_name: The name of the close column
:type close_column_name: str, optional
:param quote_asset_volume_column_name: The name of the quote asset volume column
:type quote_asset_volume_column_name: str, optional
"""
def __init__(
self,
window: int = 20,
close_column_name: str = static.CLOSE,
quote_asset_volume_column_name: str = static.QUOTE_ASSET_VOLUME,
):
self.window = window
self.close_column_name = close_column_name
self.quote_asset_volume_column_name = quote_asset_volume_column_name
[docs] def fit(self, X, y=None, **fit_params):
return self
[docs]class HasbrouckLambda(BaseEstimator, TransformerMixin):
"""
Hasbrouck Lambda price impact estimator(p.289).
See page 289 of Advances in Financial Machine Learning by Marcos Lopez de
Prado for additional information.
:param window: The window size
:type window: int
:param close_column_name: The name of the close column
:type close_column_name: str, optional
:param quote_asset_volume_column_name: The name of the quote asset volume column
:type quote_asset_volume_column_name: str, optional
"""
def __init__(
self,
window: int = 20,
close_column_name: str = static.CLOSE,
quote_asset_volume_column_name: str = static.QUOTE_ASSET_VOLUME,
):
self.window = window
self.close_column_name = close_column_name
self.quote_asset_volume_column_name = quote_asset_volume_column_name
[docs] def fit(self, X, y=None, **fit_params):
return self