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 など、異なる列を取ることができる一般的な ApplyIndicator が必要な場合は、複数の引数を取り、異なる列が必要です。
slowk, slowd = STOCH(input_arrays, 5, 3, 0, 3, 0, prices=['high', 'low', 'open'])
この場合、必要なすべての列が既に df にあると仮定して、一般的な talib 関数で実行する一般的な ApplyIndicator 関数を実行するにはどうすればよいですか。
ありがとうございました。
2 つの機能の詳細:
SMA(real[, timeperiod=?])
と
STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])