在回测功能中访问调谐信号数据时出现KeyError

问题描述 投票:0回答:1

我正在研究交易算法,并在尝试访问 DataFrame 中的列时遇到 KeyError。具体来说,我在回溯测试阶段访问股票报价机的调谐信号时遇到了错误。

KeyError: 'MSFT_Tuned_Signal'

这是我的代码的相关部分:

def backtest_with_risk_management(data, tickers):
    for ticker in tickers:
        for i in range(len(data)):
            signal = data[f'{ticker}_Tuned_Signal'].iloc[i]
            # Additional logic here...

某些代码(例如 MSFT)的数据 DataFrame 中似乎缺少信号列

('{ticker}_Tuned_Signal')
,但我不知道为什么会发生这种情况。我已经应用卡尔曼滤波器来生成信号,但仍未创建列。

可能的原因是什么?如何确保信号数据在回测过程中正确生成并可访问?

我对股票数据应用了卡尔曼滤波器,并期望它在 DataFrame 中为每个股票代码生成一个新列(例如,

MSFT_Tuned_Signal
GOOG_Tuned_Signal
)。卡尔曼滤波器似乎运行没有错误,但是当我尝试在回溯测试函数中访问这些列时,我遇到了 KeyError。我期望这些列存在于 DataFrame 中,但某些代码缺少这些列,从而导致错误。

python algorithmic-trading yfinance
1个回答
0
投票

当您调用该函数时,您确定传递的数据参数包含“MSFT_Tuned_Signal”列吗?

您可以简单地使用

进行检查
'MSFT_Tuned_Signal' in data.columns
© www.soinside.com 2019 - 2024. All rights reserved.