我创建了pandas backtrader数据源并通过以下方式传入:
data = bt.feeds.PandasData(dataname= **my_data.candles_to_backtrader(pandas))
cerebro.adddata(data)
我正在创建一个新的indicator
,它需要从data feed
中取出{
或者实际上只是对数据执行min
,max
之类的操作。在
在我的指标中我有:
^{pr2}$这是行不通的,提到:
AttributeError: 'Lines_LineSeries_DataSeries_OHLC_OHLCDateTime_Abst' object has no attribute 'min'
有什么线索吗?在
backtrader不是
pandas
,也不被认为是Dataframe
。在从你的例子来看:
它实际上应该是},这简化了事情,但这不是重点。在
self.datas[0]
或更好的self.data0
或{关键点在这里
^{pr2}$第一个:
self.datas[0]
并用它做某事时,你指的是close
价格。为什么?因为这个行业很久以前就解决了这个问题,而且它还可以开发不必引用特定领域的通用指标(当你有指标关于指标的指标时,很明显,通用性才是必由之路)第二:
显然,你要求的是整个系列的最低要求。在
所设想的指标有一个回溯期,不需要(通常,但你可以)回顾整个系列。
第三:
Dataframe
作为输入,backtrader在内部并不能处理这个结构(这是有意识的设计决策),并且每个构成价格条或指标输出的元素都是单独的数组。在不。backtrader不是一个}。在
Dataframe
,也不打算作为一个。您总是可以将所需的行分割为并从中创建一个Dataframe
或{请参见:Backtrader Documentation - Platform Concepts和部分:切片
我从几个来源得到,backtrader不(也不会)支持pandas dataframe的计算。在
下面是将
self.datas[0]
转换为pandas数据帧的方法,同时传入len(self)
,以支持正确的回溯测试。在代码如下:
其中}可以是{}
btdata
可以是self.datas[0]
,而{希望这有帮助
这意味着你试图得到一个或多个Abst对象的最小值
可能是这个问题的原因
来自:backtrader link
所以解决方法是找到正确的级数,得到最小值
如果你能提供数据样本,我可以帮助细节
或者,如果您真的想对datetime进行排序,您可以尝试先将其转换为unix时间戳
相关问题 更多 >
编程相关推荐