python - 如何在 backtrader 中检查馈送数据?
问题描述
import backtrader as bt
cerebro = bt.Cerebro()
data = bt.feeds.GenericCSVData(
dataname='data.csv',
# Do not pass values before this date
fromdate=dt.datetime(2000, 1, 1),
# Do not pass values after this date
todate=dt.datetime.now().date(),
datetime=0,
high=5,
low=6,
open=4,
close=8,
volume=10,
openinterest=-1
)
cerebro.adddata(data)
如何检查小麦数据是否正确喂食?比如打印open
和close
?如何绘制它(蜡烛)?
解决方案
您可以通过从 打印日志来查看您的数据next
。这是我使用的标准设置。
class TestPositions(bt.Strategy):
def __init__(self):
pass
def log(self, txt, dt=None):
""" Logging function fot this strategy"""
dt = dt or self.data.datetime[0]
if isinstance(dt, float):
dt = bt.num2date(dt)
print("%s, %s" % (dt, txt))
def print_signal(self):
self.log(
f"o {self.datas[0].open[0]:7.2f} "
f"h {self.datas[0].high[0]:7.2f} "
f"l {self.datas[0].low[0]:7.2f} "
f"c {self.datas[0].close[0]:7.2f} "
f"v {self.datas[0].volume[0]:7.0f} "
)
def next(self):
self.print_signal()
cerebro.plot()
在你运行 cerebro 后绘制你只使用的情节。