簡體   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