0

pandas df、関数名、必要な入力列、および引数/kwargsを受け取る関数を手伝っていただければ幸いです

import talib

df の形式は次のとおりです。

                  Open        High         Low       Close     Volume 
Date                                                                          
1993-01-29   43.970001   43.970001   43.750000   43.939999    1003200   
1993-02-01   43.970001   44.250000   43.970001   44.250000     480500
1993-02-02   44.220001   44.380001   44.130001   44.340000     201300

この次のコードは問題ありません。

def ApplyIndicator(df, data_col, indicator_func,period):
    df_copy = df.copy()
    col_name = indicator_func.__name__
    df_copy[col_name]=df_copy[data_col].apply(lambda x:indicator_func(x,period))

    return df_copy

サンプル:

new_df = ApplyIndicator(df,['Close'],talib.SMA,10)

ただし、talib.STOCH など、異なる列を取ることができる一般的な ApplyIndi​​cator が必要な場合は、複数の引数を取り、異なる列が必要です。

slowk, slowd = STOCH(input_arrays, 5, 3, 0, 3, 0, prices=['high', 'low', 'open'])

この場合、必要なすべての列が既に df にあると仮定して、一般的な talib 関数で実行する一般的な ApplyIndi​​cator 関数を実行するにはどうすればよいですか。

ありがとうございました。

2 つの機能の詳細:

SMA(real[, timeperiod=?])

STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])
4

1 に答える 1