问题标签 [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.
python - Backtrader 无法显示绘图图
我是编码新手,尝试使用 backtrader 进行简单的回测过程。我能够执行买卖,但是当我试图绘制它显示的图表时: AttributeError: type object 'Gcf' has no attribute '_set_new_active_manager'
我的代码如下:
看看有没有人可以帮忙,非常感谢。
python - 如何优化代码中的三种方法?
我昨天发布了一个关于最简化代码的问题。有人建议我发送完整的场景。以下是完整场景的示例代码和分析。所有数据均为演示数据,代码只是我原始代码的简化示例代码。
老问题:如何比较df的列之间的值更快?
能够解决这两个问题之一会很棒。
在我的代码中,需要优化的三个方法是:BackTestStrategy.get_status()
、、
BackTestStrategy.calc_df()
和
BackTestStrategy.calc_trade_sig()
。
根据snakeviz
生成的prof文件的分析:
我的原始代码运行大约需要 27 分钟。
- 从 2018 年 1 月 1 日开始,我电脑上的总运行时间约为 21 分钟。
- 运行时间
BackTestStrategy.get_status()
为442秒。 - 运行时间
BackTestStrategy.calc_df()
为 341 秒。 - 运行时间
BackTestStrategy.calc_trade_sig()
为58秒。 - 虽然运行时间
BackTestStrategy.buy_or_sell()
是135秒,但是这里只是日志调用,暂时不需要优化。
我的代码如下:
python-3.x - Backtrader:“无所作为”的策略
我希望我的问题不是太傻......我目前正在享受使用Backtrader对交易策略进行回测,但我仍然缺少一些东西:我想将各种策略的表现与我们简单地购买的“无所作为”进行比较某篇论文的一些股票,然后等待一段时间后会发生什么。
我尝试编写以下策略< 但它不起作用,因为基于cerebro.broker.getvalue()
之前和之后计算的性能cerebro.run()
远远超过简单的最后价格/初始价格。
我怎样才能正确地编写这个“什么都不做”的策略?
python - backtrader:自定义列作为指标
你好,
我想在数据框中使用我的自定义列,即Strategy_GoldenCross_Signal
.
添加数据后:
然后我定义策略类:
所以基本上,当自定义信号为 1 -> 买入,-1 -> 卖出时添加到策略中:
我想问一下这是否是使用数据框中的列的正确方法?对于使用这些指标,您有什么建议?您会先设计数据框并使用已设计的列,而不是使用 backtrader 包中的现有指标吗?谢谢。
python - 如何使用带有每小时输入数据的 Replay Daily Candles
我一直在使用 Backtrader 中的Replay,但我似乎无法正确使用每小时数据来重新创建 Daily Candles。我拥有的每小时数据总是被认为是每天。
可能吗?
我有一种预感,我必须声明在某处使用的时间范围(分钟)并使用 60 的压缩。但我不确定压缩是否以这种方式工作。似乎也无法在任何地方找到 bt.TimeFrame.Hours。
旁注:我使用 Binance 的每小时数据,因为在从 Binance 检索分钟数据(从今天起 3 年前)时存在一些问题(缺少蜡烛)
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):
但我真的很想分开
例如
这将允许我以后使用不同的条件来平仓和开仓。
非常感谢您的任何意见、想法和评论。
阿贝
python - Backtrader 问题 - optstrategy AttributeError:模块 'collections' 没有属性 'Iterable'
我正在尝试使用 python 优化我在 Backtrader 上的策略,但不断收到此错误,并且我在网络上找不到任何显示我得到它的原因。基于快速入门示例,我的代码简单而松散:
运行脚本,我得到这个错误:
在没有 optstrategy() 而是使用 addstrategy() 运行脚本时,evrything 运行良好。只有在更改为 optstrategy 时才会出现此错误。
我还尝试在 Google colab 上运行相同的代码(使用 optstrategy() 方法)并且那里一切正常,所以这让我非常困惑......
我在 macOS 上使用 PyCharm CE 运行 python 3.10。如果需要任何其他信息来解决此问题,请告诉我。Nooby to python 所以如果缺少任何信息,我会提前道歉。
提前感谢您的帮助!
python - AttributeError:“NoneType”对象没有属性“_id”
我正在尝试制作一个交易机器人,并正在使用 backtrader。我一直在尝试调试这个问题,但还没有找到解决方案。代码如下图
错误信息如下:
提前致谢!
python - 是否有一种简单的方法可以覆盖 Backtrader IB 经纪人实时数据馈送?
我正在使用 IB Broker 开发Backtrader,并且我需要覆盖数据接收器功能,因此不是使用 Backtrader ibstore 来获取实时数据,而是使用我自己的数据服务(它只是一个简单的套接字连接,现在返回 IB 数据)。不幸的是,它的文档记录不够好,代码本身也很复杂。我需要知道我应该把我的代码放在哪里。我找到了几个地方,但不知道哪个地方是最好的并且当然可以:
- _load(self) 函数在 ibdata
- ibstore 中的 reqMktData 函数
- ibstore 中的 realtimeBar 功能
注意:我需要使用其他 IB 的东西,所以我不想完全禁用 IB,只是实时数据的东西