0

我正在使用带有 python 的 VSCode 来使用 backtrader 进行一些回测。我刚开始学习教程,第一个测试代码在实例化 cerebro 时似乎出现了语法错误。这是代码:

import backtrader as bt
from datetime import datetime

class LogClass(bt.Strategy):
  def __init__(self):
    self.dataclose = self.datas[0].close

  def log(next, txt, dt=None):
    dt = dt or self.datas[0].datetime.date(0)
    print(f'{dt} {txt}')

  def next(self):
    self.log('Close: {}'.format(self.dataclose[0])

cerebro = bt.Cerebro()

data = bt.feeds.YahooFinanceData(dataname=LogClose.params.ticker,
                             fromdate= LogClose.params.fromDate,
                             todate= LogClose.params.toDate)

cerebro.adddata(data)

cerebro.addstrategy(LogClose)

cerebro.run()

当我使用“在终端中运行 Python 文件”运行文件时,出现错误

File "log.py", line 16
cerebro = bt.Cerebro()
      ^
SyntaxError: invalid syntax

我尝试寻找没有运气的解决方案。我将解释器更改为使用 python3.7,安装 pylint,更新 pip。重新启动笔记本电脑,没有。帮助。

4

1 回答 1

1

在 def next() self.log() unmatched ( add a ) 到 self.log('Close: {}'.format(self.dataclose[0]) 的末尾

于 2020-11-24T22:01:12.257 回答