繁体   English   中英

如何在 python 中使用 backtrader 正确记录交易?

[英]How to correctly log trades using backtrader in python?

使用 60 分钟格式的 csv 文件中的数据。 尝试使用 backtrader backtester 记录所有买卖决策。

问题:时间记录器似乎无法正常工作,因为所有时间都输出为“23:59:59.999989”,而实际情况并非如此。

查看示例代码:

def log(self, txt, dt=None):
    dt = dt or self.data.datetime.datetime(0)
    print('%s, %s' % (dt, txt)) 


def next(self):
    if self.data.close > self.sma1:
        self.buy()
        self.log('BUY CREATE, exectype Market, price %.2f' % self.data.close[0])

#Get Data
data = btfeeds.GenericCSVData(dataname='AAPL.csv',fromdate=datetime.datetime(2018, 1, 2),todate=datetime.datetime(2020, 4, 28),nullvalue=0.0,dtformat=('%Y-%m-%d %H:%M:%S'),datetime=0,open=1,low=2,high=3,close=4,volume=5,openinterest=6)

示例输出:

2019-07-12 23:59:59.999989, BUY CREATE, exectype Market, price 203.52
2019-07-12 23:59:59.999989, BUY CREATE, exectype Market, price 203.30
2019-07-12 23:59:59.999989, BUY CREATE, exectype Market, price 203.24
2019-07-12 23:59:59.999989, BUY CREATE, exectype Market, price 203.24
2019-07-15 23:59:59.999989, BUY CREATE, exectype Market, price 204.11

Csv 文件中的数据和格式:

2018-01-02  9:30:00 AM

这个问题也花了我几个小时。 我从另一个网站找到了解决方案。 在此处输入链接描述

对于分钟数据,请告诉 cerebro 您正在使用分钟数据(时间范围)以及每条柱线有多少分钟(压缩)。

#Get Data
data = btfeeds.GenericCSVData(
dataname='AAPL.csv',
fromdate=datetime.datetime(2018, 1, 2),
todate=datetime.datetime(2020, 4, 28),
nullvalue=0.0,

dtformat=('%Y-%m-%d %H:%M:%S'),
**timeframe=bt.TimeFrame.Minutes,**

datetime=0,
open=1,
low=2,
high=3,
close=4,
volume=5,
openinterest=6)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM