擅长:python、mysql、java
<p>我从几个来源得到,backtrader不(也不会)支持pandas dataframe的计算。在</p>
<p>下面是将<code>self.datas[0]</code>转换为pandas数据帧的方法,同时传入<code>len(self)</code>,以支持正确的回溯测试。在</p>
<p>代码如下:</p>
<pre><code>def __bt_to_pandas__(self, btdata, len):
get = lambda mydata: mydata.get(ago=0, size=len)
fields = {
'open': get(btdata.open),
'high': get(btdata.high),
'low': get(btdata.low),
'close': get(btdata.close),
'volume': get(btdata.volume)
}
time = [btdata.num2date(x) for x in get(btdata.datetime)]
return pd.DataFrame(data=fields, index=time)
</code></pre>
<p>其中<code>btdata</code>可以是<code>self.datas[0]</code>,而{<cd5>}可以是{<cd2>}</p>
<p>希望这有帮助</p>