コード例 #1
0
ファイル: ta_lib.py プロジェクト: iotmech/infertrade
def talib_adapter(function_mixin: str, function_name: str, **kwargs):
    output_strings = Function(function_mixin).output_names
    column_strings = Function(function_mixin).input_names
    column_strings = list(
        column_strings.items())[0][1]  # Get required columns from OrderedDict

    def func(df: pd.DataFrame) -> pd.DataFrame:
        try:
            output_index = output_strings.index(function_name)
        except ValueError:
            raise ValueError("Not existing function_name was supplied")

        input_arrays = {
            column_name: df[column_name]
            for column_name in column_strings
        }
        indicator = Function(function_mixin)
        result = indicator(input_arrays, **kwargs)
        df["signal"] = result[output_index]
        return df

    return func