问题标签 [backtrader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
148 浏览

python - Backtrader 无法显示绘图图

我是编码新手,尝试使用 backtrader 进行简单的回测过程。我能够执行买卖,但是当我试图绘制它显示的图表时: AttributeError: type object 'Gcf' has no attribute '_set_new_active_manager'

我的代码如下:

看看有没有人可以帮忙,非常感谢。

0 投票
0 回答
60 浏览

python - 如何优化代码中的三种方法?

我昨天发布了一个关于最简化代码的问题。有人建议我发送完整的场景。以下是完整场景的示例代码和分析。所有数据均为演示数据,代码只是我原始代码的简化示例代码。

老问题:如何比较df的列之间的值更快?

能够解决这两个问题之一会很棒。

在我的代码中,需要优化的三个方法是:BackTestStrategy.get_status()、、 BackTestStrategy.calc_df()BackTestStrategy.calc_trade_sig()

根据snakeviz生成的prof文件的分析:

我的原始代码运行大约需要 27 分钟。

  1. 从 2018 年 1 月 1 日开始,我电脑上的总运行时间约为 21 分钟。
  2. 运行时间BackTestStrategy.get_status()为442秒。
  3. 运行时间BackTestStrategy.calc_df()为 341 秒。
  4. 运行时间BackTestStrategy.calc_trade_sig()为58秒。
  5. 虽然运行时间BackTestStrategy.buy_or_sell()是135秒,但是这里只是日志调用,暂时不需要优化。

我的代码如下:

0 投票
0 回答
27 浏览

python-3.x - Backtrader:“无所作为”的策略

我希望我的问题不是太傻......我目前正在享受使用Backtrader对交易策略进行回测,但我仍然缺少一些东西:我想将各种策略的表现与我们简单地购买的“无所作为”进行比较某篇论文的一些股票,然后等待一段时间后会发生什么。

我尝试编写以下策略< 但它不起作用,因为基于cerebro.broker.getvalue()之前和之后计算的性能cerebro.run()远远超过简单的最后价格/初始价格。

我怎样才能正确地编写这个“什么都不做”的策略?

0 投票
0 回答
72 浏览

python - backtrader:自定义列作为指标

你好,

我想在数据框中使用我的自定义列,即Strategy_GoldenCross_Signal.

添加数据后:

然后我定义策略类:

所以基本上,当自定义信号为 1 -> 买入,-1 -> 卖出时添加到策略中:

我想问一下这是否是使用数据框中的列的正确方法?对于使用这些指标,您有什么建议?您会先设计数据框并使用已设计的列,而不是使用 backtrader 包中的现有指标吗?谢谢。

0 投票
0 回答
14 浏览

python - 如何使用带有每小时输入数据的 Replay Daily Candles

我一直在使用 Backtrader 中的Replay,但我似乎无法正确使用每小时数据来重新创建 Daily Candles。我拥有的每小时数据总是被认为是每天。

可能吗?

我有一种预感,我必须声明在某处使用的时间范围(分钟)并使用 60 的压缩。但我不确定压缩是否以这种方式工作。似乎也无法在任何地方找到 bt.TimeFrame.Hours。


旁注:我使用 Binance 的每小时数据,因为在从 Binance 检索分钟数据(从今天起 3 年前)时存在一些问题(缺少蜡烛)

0 投票
1 回答
205 浏览

python - Backtrader 中带有 MACD 指标的多头和空头策略

我刚刚从 Matlab 切换到 python,甚至更新到用于回测交易策略的 backtrader 库。我的问题可能看起来很明显。

我的问题似乎与此类似: https ://community.backtrader.com/topic/2857/wanted-exit-long-and-open-short-on-the-same-bar-and-vice-versa

还有这个: https ://community.backtrader.com/topic/2797/self-close-does-not-clear-position 下面的代码是一个简单的 MACD 策略。这是代码:

以下是结果:

结果

在 2021-11-10,macd_hist 从正面变为负面。我们期待第二天(2021-11-11):

a) 多头头寸被平仓,并且紧随其后并且

b) 开设空头头寸

1) 我们看到 a) 实际上在同一天关闭。不应该是下一个吗?

2) 卖出也是在第二天执行的,这是不应该发生的。

任何关于 1) 和 2) 的建议都会更受欢迎。谢谢。

阿贝

编辑 :

顺便说一句,我知道这个想法可以这样编码(只有 def next):

但我真的很想分开

例如

这将允许我以后使用不同的条件来平仓和开仓。

非常感谢您的任何意见、想法和评论。

阿贝

0 投票
1 回答
96 浏览

python - Backtrader 问题 - optstrategy AttributeError:模块 'collections' 没有属性 'Iterable'

我正在尝试使用 python 优化我在 Backtrader 上的策略,但不断收到此错误,并且我在网络上找不到任何显示我得到它的原因。基于快速入门示例,我的代码简单而松散:

运行脚本,我得到这个错误:

在没有 optstrategy() 而是使用 addstrategy() 运行脚本时,evrything 运行良好。只有在更改为 optstrategy 时才会出现此错误。

我还尝试在 Google colab 上运行相同的代码(使用 optstrategy() 方法)并且那里一切正常,所以这让我非常困惑......

我在 macOS 上使用 PyCharm CE 运行 python 3.10。如果需要任何其他信息来解决此问题,请告诉我。Nooby to python 所以如果缺少任何信息,我会提前道歉。

提前感谢您的帮助!

0 投票
1 回答
91 浏览

python - AttributeError:“NoneType”对象没有属性“_id”

我正在尝试制作一个交易机器人,并正在使用 backtrader。我一直在尝试调试这个问题,但还没有找到解决方案。代码如下图

错误信息如下:

提前致谢!

0 投票
0 回答
28 浏览

python - 是否有一种简单的方法可以覆盖 Backtrader IB 经纪人实时数据馈送?

我正在使用 IB Broker 开发Backtrader,并且我需要覆盖数据接收器功能,因此不是使用 Backtrader ibstore 来获取实时数据,而是使用我自己的数据服务(它只是一个简单的套接字连接,现在返回 IB 数据)。不幸的是,它的文档记录不够好,代码本身也很复杂。我需要知道我应该把我的代码放在哪里。我找到了几个地方,但不知道哪个地方是最好的并且当然可以:

  • _load(self) 函数在 ibdata
  • ibstore 中的 reqMktData 函数
  • ibstore 中的 realtimeBar 功能

注意:我需要使用其他 IB 的东西,所以我不想完全禁用 IB,只是实时数据的东西

0 投票
1 回答
32 浏览

python - “numpy.int64”对象在 backtrader 提要中没有属性“to_pydatetime”

我无法修复错误 - 'numpy.int64' 对象没有属性 'to_pydatetime',我将非常感激,如果有人能帮我解决这个问题?我已经尝试卸载 pyfolio 并从 git 安装它。请看下面的完整代码

数据输入格式