backtrader数据源中出现“'numpy.int64'objecthasnoattribute'to_pydatetime'”错误。
创始人
2024-11-20 06:30:15
0

这个错误通常是因为数据源返回的时间戳是'numpy.int64'类型,而backtrader无法处理此类型数据。将 numpy.int64 转换成 datetime 类型即可解决这个问题。例如:

from datetime import datetime
 
class MyCSVData(DataBase):
    params = (
        ('name', None),
        ('datetime', 0),
        ('open', 1),
        ('high', 2),
        ('low', 3),
        ('close', 4),
        ('volume', 5),
        ('openinterest', -1),
        ('dtformat', '%Y-%m-%d %H:%M:%S'),
        # 如果需要,在这里增加其他参数
    )

    def start(self):
        # 按照指定格式解析时间戳
        fmt = self.p.dtformat
        self.rdt = lambda x: datetime.strptime(x.decode('utf-8'), fmt)

    def _loadline(self, linetokens):
        # 将时间戳转换成 datetime 类型
        dt = self.rdt(linetokens[self.p.datetime])
        # 组装并返回数据
        return bt.LabeledData(
            datetime=dt,
            open=float(linetokens[self.p.open]),
            high=float(linetokens[self.p.high]),
            low=float(linetokens[self.p.low]),
            close=float(linetokens[self.p.close]),
            volume=float(linetokens[self.p.volume]),
            openinterest=float(linetokens[self.p.openinterest])
        )

这个示例代码展示了如何在 backtrader 中从 CSV 文件中读取数据,并将时间戳从字符串转换成 datetime 类型,以避免该错误的出现。

相关内容

热门资讯

6分钟辅助!hhpoker是真... 6分钟辅助!hhpoker是真的假的,hhpoker真的有透视吗,演示教程(真是有挂)1、每一步都需...
第七分钟辅助!we poker... 第七分钟辅助!we poker插件,we poker免费辅助器,手筋教程(有挂方式)暗藏猫腻,小编详...
七分钟辅助!aa poker辅... 七分钟辅助!aa poker辅助包,pokemmo脚本辅助器下载,讲义教程(有挂秘籍)1、pokem...
第四分钟辅助!wepoker辅... 第四分钟辅助!wepoker辅助器安装包定制,aapoker透视脚本,大纲教程(有挂总结)所有人都在...
第四分钟辅助!wpk透视辅助靠... 第四分钟辅助!wpk透视辅助靠谱吗,wepoker透视苹果系统,诀窍教程(有挂猫腻);运wepoke...
七分钟辅助!aapoker透视... 七分钟辅助!aapoker透视脚本入口,wejoker开挂,学习教程(有挂教程)1、打开软件启动之后...
第四分钟辅助!淘宝买wepok... 第四分钟辅助!淘宝买wepoker透视有用吗,wpk俱乐部怎么作弊,积累教程(有挂规律)1、下载好淘...
6分钟辅助!we-poker软... 6分钟辅助!we-poker软件,购买的wpk辅助在哪里下载,积累教程(有挂技巧)购买的wpk辅助在...
第2分钟辅助!如何下载wepo... 第2分钟辅助!如何下载wepoker安装包,newpoker怎么安装脚本,教程书教程(今日头条)1、...
4分钟辅助!wepoker钻石... 4分钟辅助!wepoker钻石怎么看底牌,wepoker辅助器有哪些功能,法门教程(有挂详细)该软件...