问题标签 [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 回答
221 浏览

python - 如何从一个表中选择 id 并插入/更新到另一个表

我正在使用python开发一个自动交易系统,我已经建立了一个数据库,每次生成新订单时都会插入一行。

我遇到的问题是,如果订单成功,我想将 OrderID 添加到我的职位表中。

以下是可能发生的情况

如果没有相同的打开引用,OrderID, AccountID, strategyID, AssetID则插入新行PositionID=NUM, OpenReference=OrderID, CloseReference=NULL, Status=2

如果存在不存在的位置,status(3)请检查它是否与 OpenReference 参数(OrderID, AccountID, strategyID, AssetID)匹配,如果它确实更新了OrderIDto 列CloseReference和 update status=3

订单表设置

位置表设置

我的 Python 代码

0 投票
1 回答
854 浏览

python - 运行回测和购买时,我总是收到订单取消/保证金/拒绝

我刚刚开始使用反向交易者。

我从 pandas 数据框中获取了 1 分钟的蜡烛数据。

运行 backtrader 时,我在每个购买订单后都会收到此日志消息:“订单取消/保证金/拒绝”

我正在使用 jupyter 笔记本

这是我的交易策略:

这是我的主要代码

这是我的数据框数据

这些是日志,加上最终余额与测试开始时相同。

0 投票
0 回答
60 浏览

python - 子类不继承父类

我目前有一个:

  • 父类,称为bt.strategy(这是Backtrader 库中的默认类)
  • 子类,称为Strategy(继承自bt.strategy
  • 子类的子类,称为OpeningVolHigh(继承自Strategy

我无法让OpenVolHighStrategy 继承属性。我希望OpeningVolHigh从Strategy继承dataClose、dataOpendataHigh属性,但这不起作用。有趣的是,在OpenVolHigh中调用Strategy中的函数self.log()没有问题。

这是我的代码:

子类 -策略

子类的子级 - OpeningVolHigh

返回的错误:

对象没有属性“dataClose”

我该如何解决?谢谢!!

0 投票
1 回答
407 浏览

python - backtrader 时间列:ValueError:时间数据“0”与格式“%Y-%m-%d %H:%M:%S”不匹配

我有一个价格表,其中包含 csv 格式的日期和时间:

ValueError: 时间数据 '0' 与格式 '%Y-%m-%d %H:%M:%S' 不匹配

这是我从运行这些代码片段中得到的错误。

我试图合并日期和时间列来解决这个问题,但无济于事......因为错误保持不变。

0 投票
1 回答
300 浏览

python - 使用 python 的 Mac 上的 Visual Studio Code 在“cerebro = bt.Cerebro()”行出现错误“语法错误:无效语法”

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

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

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

0 投票
1 回答
453 浏览

python-3.x - backtrader 打印数据提要 vaues 不打印小时和分钟,默认为

我正在学习使用 backtrader,但在尝试打印数据馈送时遇到了问题。它正确打印日期、开盘价、最高价、最低价、收盘价和成交量,但小时和分钟数据似乎默认为每行的 23:59:59.999989。

以下是数据源的示例:

我用来将数据添加到 backtrader 的代码是:

我的策略代码是一个简单的买入并持有策略,是:

我得到的打印输出如下:

我还尝试使用带有注释行self.time的注释掉它,print它以稍微不同的格式提供类似的结果:

我不知道我在这里错过了什么。

0 投票
1 回答
278 浏览

python - sh:Script.py:找不到命令

我写了一个 Script.py 脚本。在这个脚本中,我开始初始化一些变量,而不是 7 个类,最后我运行一个 cerebro 来回测股票:

如果我手动运行脚本,回测工作完美,我得到了我想要的结果。但是如果我想从另一个这样的脚本运行这个脚本:

为此,我将所有脚本放在一个文件夹中,并将每个脚本导入到 Runner Script 中。每个脚本都能完美运行,只有 Backtest.py 脚本给出错误消息

sh:Backtest.py:找不到命令

我还必须提到,其他脚本(可以工作并且也可以通过 os.system 由运行脚本执行)都没有类,也没有“if name == 'main':”。

有谁知道为什么找不到这个 backtest.py 脚本以及如何解决这个问题?

最好的祝福

0 投票
1 回答
59 浏览

python - 无法删除 backtrader 中日期时间格式的错误

这是他时间戳的样子——12/24/2020 10:00:00 AM

0 投票
1 回答
400 浏览

python - 运行 Cerebro 后,我在 backtrader 中的投资组合价值没有发生任何变化,我如何检查它是否正常工作

进口 backtrader 作为 bt 进口 backtrader.feeds 作为 btfeed 进口 backtrader.analyzers 作为 btanalyzers 进口 talib 作为 ta 进口 numpy 作为 np 进口 pandas 作为 pd

从日期时间导入日期时间

MACross 类(bt.Strategy):

0 投票
0 回答
661 浏览

python - AttributeError:“Lines_LineSeries_LineIterator_DataAccessor_Strateg”对象没有属性“analyers”

我在互联网上搜索了这个问题,但没有找到任何合适的答案,所以我发布了这个问题。我的代码在这个链接中。

错误:

错误实际上来自文件lineseries.py中的这一行,安装时附带pycharm:

如果您想查看完整代码,请访问此链接。我去了搜索中出现的每个链接,但没有一个有帮助。我尝试按照 Github 上的建议删除上面一行中的“自我”,但这没有用。

感谢所有的帮助。我知道我的代码很长,很抱歉。

注意:我使用的是 Windows 10,系统上安装了 python 3.7 版本。