pycharm运行不了数据,谢谢
# -*- coding: utf-8 -*-
import backtrader as bt
import pandas as pd
from datetime import datetime
if __name__ == '__main__':
cerebro = bt.Cerebro()
# 获取数据
stock_hfq_df = pd.read_csv("C:/Users/18368/Desktop/新建文件夹 (2)/sz300001.csv", index_col='date', parse_dates=True)
start_date = datetime(2010, 9, 30) # 回测开始时间
end_date = datetime(2021, 9, 30) # 回测结束时间
data = bt.feeds.PandasData(dataname=stock_hfq_df, fromdate=start_date, todate=end_date) # 加载数据
cerebro.adddata(data) # 将数据传入回测系统
错误;ValueError: 'date' is not in list
看下你的csv文件中第一行是不是header头,若是header头看下有没有date
该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据你提供的代码,你的DataFrame对象名为 stock_hfq_df,其中的时间列为 date。但是,在 PandasData 加载数据时指定的 index_col 参数应该是一个列名的字符串,用于在 DataFrame 中选择日期列。所以,将 index_col='date' 更改为 index_col=0,即:
# -*- coding: utf-8 -*-
import backtrader as bt
import pandas as pd
from datetime import datetime
if __name__ == '__main__':
cerebro = bt.Cerebro()
# 获取数据
stock_hfq_df = pd.read_csv("C:/Users/18368/Desktop/新建文件夹 (2)/sz300001.csv", index_col='date', parse_dates=True)
start_date = datetime(2010, 9, 30) # 回测开始时间
end_date = datetime(2021, 9, 30) # 回测结束时间
data = bt.feeds.PandasData(dataname=stock_hfq_df, fromdate=start_date, todate=end_date, index_col=0) # 加载数据
cerebro.adddata(data) # 将数据传入回测系统
这应该可以解决你的问题。