When i tried to import multiple csv files into self.data using backtrader, except for the first datas[0], the rest of the dataset accessed only the last bar in the next() function These are the two data sets I tested(same form): enter code here datetime open ... volume openintrest datetime ... 2025-01-17 06:00:00 2025-01-17 06:00:00 100156.98 ... 287.20439 0 2025-01-17 06:30:00 2025-01-17 06:30:00 99596.80 ... 256.37462 0 2025-01-17 07:00:00 2025-01-17 07:00:00 99838.25 ... 498.32045 0 2025-01-17 07:30:00 2025-01-17 07:30:00 99891.23 ... 161.58102 0 2025-01-17 08:00:00 2025-01-17 08:00:00 99987.30 ... 531.72307 0 Here is the simpfiy code: enter code here from datetime import timedelta, datetime import ccxt import backtrader as bt import pandas as pd import os class TestStrategy(bt.Strategy): def __init__(self):#计算指标 self.dataclose=self.datas[1].lines.open def next(self):#调用指标和策略 dt = self.datas[1].lines.datetime.date(0) self.log(dt,self.dataclose[0]) def log(self,dt,text): print(dt,text) if __name__=='__main__': cerebro = bt.Cerebro() since_time = datetime(year=2024, month=11, day=1) to_time = datetime(year=2025, month=4, day=1) file_path = ["E:/PycharmProjects/PythonProject/backtrader/data/2025-01-28 15:30: 00.csv", "E:/PycharmProjects/PythonProject/backtrader/data/2025-01-16 22:00: 00.csv"] for i in file_path:#Two data sets are imported df = pd.read_csv(i, parse_dates=['datetime']) # 将 datetime 列解析为日期时间类型 df.index = pd.to_datetime(df.datetime) df['openintrest'] = 0 df = df[['open', 'high', 'low', 'close', 'volume', 'openintrest']] data = bt.feeds.PandasData( dataname=df, fromdate=since_time, todate=to_time, ) cerebro.adddata(data) cerebro.addstrategy(TestStrategy) cerebro.run When I try to access the first dataset: enter code here class TestStrategy(bt.Strategy): def __init__(self):#计算指标 self.dataclose=self.datas[0].lines.open def next(self):#调用指标和策略 dt = self.datas[0].lines.datetime.date(0) self.log(dt,self.dataclose[0]) def log(self,dt,text): print(dt,text) The result output is: enter code here 2025-01-17 99596.8 2025-01-17 99838.25 2025-01-17 99891.23 2025-01-17 99987.3 2025-01-17 100156.0 2025-01-17 100120.58 But try to access the second dataset: enter code here class TestStrategy(bt.Strategy): def __init__(self):#计算指标 self.dataclose=self.datas[1].lines.open def next(self):#调用指标和策略 dt = self.datas[1].lines.datetime.date(0) self.log(dt,self.dataclose[0]) def log(self,dt,text): print(dt,text) The output is: enter code here 2025-01-15 98729.41 2025-01-15 98729.41 2025-01-15 98729.41 2025-01-15 98729.41 2025-01-15 98729.41 2025-01-15 98729.41 next () only keeps accessing the last bar of the datas[1] date. If there is anything unclear, please point out, thank you for your help Continue reading...