问题标签 [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 投票
0 回答
532 浏览

python - Backtrader 导入错误 [ImportError: cannot import name 'warnings' from 'matplotlib.dates']

似乎是 matplotlib 的导入错误。一旦我修复了源自 Yahoo Finance 的数据馈送问题,此错误就开始出现。我不得不对源代码进行小修改,特别是 Yahoo.py 文件,但我不认为小改动会破坏与 matplotlib 的任何关系。如果有人有任何建议或修复,请告诉我。

代码:

错误堆栈:

0 投票
1 回答
272 浏览

python - 如何解决使用带有本地 csv 文件的 Backtrader 和 Python 进行回测的数据馈送错误?

我正在尝试使用 backtrader 和 python 构建用于回测加密策略的代码,但每次尝试连接数据馈送时都会出错,我尝试了不同的数据馈送方法并尝试了许多其他连接方式,但每次都会出现某种或其他类型的错误,似乎没有任何效果。请帮忙!

提到了我试图在代码中使用的两种方法。

代码:

数据文件的第一个字符串:1623809640000,40124.02000000,40129.70000000,40100.0000000000,0000,0000,40107.65000000,12.53749700,162380999999999999999999999999999999778878787877,0854977878797787978977,778978978978979789797,779797897979797,779797979797999979性小士范子范中

#Errors #Method 1 #ValueError 月份必须在 1..12 #Method 2 #OSError [Errno 22] 无效参数

0 投票
1 回答
88 浏览

sql - 计算交易利润的 SQL 查询

尝试构建一个 SQL 脚本来计算每笔交易的盈亏百分比

下面是原表

ID 交换 股票代码 信号 时间 价格
3 BSE_DLY UDAICEMENT 2021-08-05 22:00:43.800603 46.4
27 BSE_DLY UDAICEMENT 2021-08-06 10:00:26.718044 47.1
24 NAS 战车 2021-08-06 05:45:16.384777 300.85
22 NAS UDAICEMENT 2021-08-06 05:00:25.23066 47.75
4 NSE 国民银行 2021-08-05 22:00:43.996958 94.8
26 NSE 国民银行 2021-08-06 09:45:17.511157 93.65
2 NSE NMDC 2021-08-05 22:00:43.600858 178.05
14 NSE NMDC 2021-08-06 03:45:11.243861 179.45
5 NSE 2021-08-05 22:00:44.197164 140.4
25 NSE 2021-08-06 09:45:17.441593 140.5
1 NSE 塔塔康苏姆 2021-08-05 21:57:56.840043 761
13 NSE 塔塔康苏姆 2021-08-06 03:37:38.371882 773
15 NSE 战车 2021-08-06 03:45:12.891371 300.65

计算盈亏百分比的公式

如果交易条目不可用,则将利润打印为 0

生成的数据集应如下所示

ID 交换 股票代码 信号 时间 价格 利润 %
3 BSE_DLY UDAICEMENT 2021-08-05 22:00:43.800603 46.4
27 BSE_DLY UDAICEMENT 2021-08-06 10:00:26.718044 47.1 1.5
24 NAS 战车 2021-08-06 05:45:16.384777 300.85
22 NAS UDAICEMENT 2021-08-06 05:00:25.23066 47.75
4 NSE 国民银行 2021-08-05 22:00:43.996958 94.8
26 NSE 国民银行 2021-08-06 09:45:17.511157 93.65 -1.21
2 NSE NMDC 2021-08-05 22:00:43.600858 178.05 0
14 NSE NMDC 2021-08-06 03:45:11.243861 179.45
5 NSE 2021-08-05 22:00:44.197164 140.4
25 NSE 2021-08-06 09:45:17.441593 140.5 0.07
1 NSE 塔塔康苏姆 2021-08-05 21:57:56.840043 761 0
13 NSE 塔塔康苏姆 2021-08-06 03:37:38.371882 773
15 NSE 战车 2021-08-06 03:45:12.891371 300.65
0 投票
1 回答
158 浏览

python - 将自定义多时间框架数据导入 backtrader

我需要将多个时间框架导入到一个交易策略中,但我不确定如何进行。

这是我的数据:

这是我在做什么的基本模板。

我不确定如何将我拥有的“数据”中的数据放入 cerebro,并且不确定如何在我的策略中引用多个时间框架。

任何帮助,将不胜感激。

0 投票
0 回答
30 浏览

python - Backtrader : dt = date(int(dttxt[0:4]), int(dttxt[5:7]), int(dttxt[8:10])) ValueError: int() 的无效文字,以 10 为底:'31 /0' 错误

我正在尝试使用 backtrader 制作一个 python 回测机器人,但我一直有这个错误,这是我的代码

0 投票
1 回答
16 浏览

python - 如何获得订单已提交的价格 backtester python

这是我的代码

所以对于线

当我使用 self.order 时,它会给出错误 TypeError: unsupported operand type(s) for *: 'NoneType' and 'float' 所以我想要做的是以购买订单的价格获取价格,然后在购买价格上涨 1%

0 投票
1 回答
67 浏览

python - Backtrader / Python ValueError:x 年超出范围

我正在尝试将 .csv 文件中的一些数据导入 backtrader,但遇到错误 ValueError: year x is out of range。

这是我要导入的 csv 中的一行

1577836800000,7195.24000000,7255.00000000,7175.15000000,7200.85000000,16792.38816500,1577923199999,121214452.11606228,194010,8946.95553500,64597785.21233434,0

这是将数据摄取到 backtrader 并使用 matplotlib 绘图的代码:

daily_2021.csv 是数据的来源。

我已经看到在其他地方提到它,这可能是由于 unix 时间戳的工作原理,我需要 /1000 日期但不确定如何。

希望有人可以提供帮助。

0 投票
0 回答
76 浏览

backtrader - Backtrader live IB 午夜系统重置

我目前正在与交互式经纪人一起使用 backtrader 进行期货交易。我遇到了一个问题,IBKR 预定的东部时间 23:45 - 00:45 系统重置中断了我的数据馈送。与每日 IB 网关自动重启不同,backtrader 无法从午夜重置中恢复,而无需我醒来并重新启动脚本。其他人注意到这个问题了吗?有什么解决办法吗?我连接到商店:

0 投票
1 回答
38 浏览

python - 买/卖地块标记位置错误

我的代码附在下面,带有示例输出。我正在尝试绘制我的策略的交易,但它们在输出中显示得很奇怪。买入/卖出标记有时不在曲线上,只是漂浮在空间中。这让我觉得我的数据有错误。你知道为什么会这样吗? 在此处输入图像描述

0 投票
0 回答
216 浏览

matplotlib - Matplotlib 绘图没有输出 jupyter-lab

我知道我在这里打败了一匹死马,但我根本无法让 matplotlib 图显示在 Jupyterlab 笔记本中。

我正在尝试运行一个最终在 jupyter 单元格内绘制的 python 脚本。

我尝试过的事情:

  • 我取得的最大成功是使用了%run魔法命令:%run pythonscript.py. 然后这引发了一个错误,但仍然能够在它之后显示一个图:

然而,这是短暂的,因为它只是在内核重新启动后显示错误而没有情节。

  • %matplotlib inline !python/!python3 pythonscript.py没有错误。连 `[[Figure 2D....]] 都没有

  • %matplotlib notebook !python/!python3 pythonscript.py没有错误。连 `[[Figure 2D....]] 都没有

  • 没有%matplotlib魔法命令。没有错误。连 `[[Figure 2D....]] 都没有

  • %run pythonscript.py. 我们得到AttributeError如上图所示。

  • %pylab inline如果与 耦合,则不会产生任何结果,而如果与!python pythonscript.pyAttributeError则不会产生任何结果%run

  • %matplotlib inline %run pythonscript.py. 我们得到AttributeError如上图所示。

在运行魔术命令时尝试了解有关属性错误的更多信息会产生死胡同。

点子列表:

在这一点上,我想我已经用尽了大部分资源。任何意见,将不胜感激。

编辑:请求截图和代码说明:

该代码基于 BackTrader,一个回测库。进行绘图的代码行是cerebro.plot(). 文档:https ://www.backtrader.com/docu/plotting/plotting/

完整的 AttributeError 堆栈跟踪