问题标签 [back-testing]

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 投票
2 回答
1310 浏览

trading - 如何在 Zipline 中添加自定义交易日历

我正在使用 zipline 并尝试将自定义日历添加到系统中,以便我可以将其应用于我们国家的交易所。

我查看了 stackoverflow 并找到了这篇文章:如何在自定义滑索包中使用自定义日历?

但是,我找不到帖子中提到的目录 zipline/utils/calendars,我应该在其中找到日历 python 文件。它似乎已被弃用。所以我目前不知道如何调整这个滑索库上的交易日历以满足我的需求。欢迎任何解决方案、建议或链接。

先感谢您。

编辑:我在 mac 上使用 python3.5,zipline 版本似乎是 1.3.0

0 投票
0 回答
265 浏览

python-3.x - 类型错误:+ 的不支持的操作数类型:'sl​​ice' 和 'int' 与 bt 回测

我正在尝试使用一个名为 bt 的库来回测一个简单的策略。Bt 抛出 TypeError: unsupported operand type(s) for +: 'slice' 和 'int'。我似乎无法弄清楚为什么。下面的代码和完整错误。尽管可能是特定于库的,但我认为更好的程序员可以更好地理解错误。

代码

数据示例

完全错误

0 投票
1 回答
198 浏览

zipline - zipline :更改内置因素的输入数据

我正在尝试在本地环境中使用 Zipline API。

我已经成功地摄取了我的自定义 csv 数据,并且在不使用 Pipeline API 的情况下,回测工作正常。

但是,我不知道在使用 Pipeline API 时应该如何使用内置因素。

更具体地说,我想在以下示例中更改输入变量。

也就是说USEquityPricing.close,我不想使用 ,而是使用MY_CSV_BUNDLE.close. 这可能吗,如果可以,我应该如何实施?

提前致谢

0 投票
1 回答
357 浏览

python - Python Pandas:如何向量化使用先前值的操作?

我想做这样的事情:

df['indicator'] = df.at[x-1] + df.at[x-2]

或者

df['indicator'] = df.at[x-1] > df.at[x-2]

我猜边缘情况会自动处理,例如跳过前几行。

0 投票
0 回答
74 浏览

limit - Using day trading limits

I would like to set up a backtesting strategy which allows me to trade up to a certain stock position such as 10000.

Therefore, I can go long or short up to 10000 but not over.

I have currently set up a backtesting strategy but I cannot work out how to stop it trading once it hits a limit.

If I buy 10000 then I should only be allowed to sell and not buy.

I have this:

This adds up all of my trades for a day. (Trade is +1 or -1 depending if buy or sell)

I can set up another check which only adds up P&L when my day traded is less than 10000 however I want to be able to sell again.

Is there an easy way to set this up please?

0 投票
2 回答
5179 浏览

python - 使用 Pandas Dataframe 计算每笔交易的损益 (PnL)

我有这个熊猫数据框,其中 long_entry 或 short_entry 中的 1 表示当时进入交易,对应的多头/空头头寸。long_exit 或 short_exit 中的 1 表示退出交易。我可以知道如何计算要显示在新列 df['pnl_per_trade'] 中的每笔交易的 PnL?

此回测在任何时间点最多只能有 1 笔交易/头寸。

下面是我的数据框。如我们所见,多头交易于 2019 年 2 月 26 日进入并于 2019 年 1 月 3 日结束,盈亏为 64.45 美元,而空头交易于 2019 年 4 月 3 日进入并于 2019 年 5 月 3 日结束盈亏为 -$119.11(亏损)。

我希望有这样的输出:

由于我有大量数据,因此我希望代码尽可能避免出现任何循环。谢谢!

0 投票
1 回答
54 浏览

google-bigquery - 使用 Bigquery 对回测的损益进行制表

我有这个 Bigquery 数据框,其中 long_entry 或 short_entry 中的 1 表示当时进入交易,对应的多头/空头头寸。long_exit 或 short_exit 中的 1 表示退出交易。我想有 2 个新列,一个称为 long_pnl 将单个多头交易生成的 PnL 制成表格,另一个称为 short_pnl 将单个空头交易生成的 PnL 制成表格。

此回测在任何时间点最多只能有 1 笔交易/头寸。

下面是我的数据框。如我们所见,多头交易于 2019 年 2 月 26 日进入并于 2019 年 1 月 3 日结束,盈亏为 64.45 美元,而空头交易于 2019 年 4 月 3 日进入并于 2019 年 5 月 3 日结束盈亏为 -$119.11(亏损)。

我希望有这样的输出,另外一列是 short_pnl:

0 投票
0 回答
325 浏览

python-3.x - 如何在 Backtrader Python3 中的图表右侧添加额外的柱

我正在尝试在 Python3 中使用 Backtrader 绘制 Ichimoku 指标

它绘制得很好,但是,我无法看到未来的云云。这是 X 轴上最后一个价格之后右侧的额外 26 个柱

我尝试过使用不同的开始/结束日期,但它不起作用。

它只绘制确切的日期,相反,我需要的是右边的 26 条。

有人可以建议吗?到目前为止,这是我的代码,

这是添加了指标的结果图表的链接 带有 Ichimoku 指标的图表

0 投票
1 回答
343 浏览

google-bigquery - 如果可能,如何在 Google Bigquery 上为回测设置追踪止损

所以我在 Google Bigquery 上对股票市场的一些交易策略进行了一些回测,我想设置一个与输入价格相差 1% 的追踪止损。如果股价上涨 5%,追踪止损也会上涨 5%。如果股价下跌,追踪止损不会改变。(https://www.investopedia.com/terms/t/trailingstop.asp

我有这张表,它显示了我的进入信号,如果价格低于追踪止损价格,退出列将显示值为 1,这意味着交易退出。

这是我到目前为止的表:

我想有一列显示每个日期的追踪止损是多少。当 enter_signal = 1 时,追踪止损首先设置为 2018 年 1 月 7 日价格的 99%,交易在该日期执行。

当价格上涨 y% 时,追踪止损也会上涨 y%。但是,如果价格下跌,追踪止损将不会改变其最后的值。

当价格 <= 追踪止损时,交易退出并且会有一个 exit_signal 为 1...

如果价格也下跌 y%,我目前无法让追踪止损下跌 y%....

期望的表格结果:

这是我的原始代码:

我得到的表:

0 投票
2 回答
9326 浏览

python - Pandas 数据帧的追踪止损

我正在对 Pandas 数据框上的股票市场上的一些交易策略进行一些回测,我想设置一个与输入价格相差 1% 的追踪止损。如果股价上涨 5%,追踪止损也会上涨 5%。如果股价下跌,追踪止损不会改变。(https://www.investopedia.com/terms/t/trailingstop.asp

我有这张表,它显示了我的进入信号,如果价格低于追踪止损价格,退出列将显示值为 1,这意味着交易退出。

这是我到目前为止的表:

我想有一列显示每个日期的追踪止损是多少。当 enter_signal = 1 时,追踪止损首先设置为 2018 年 1 月 7 日价格的 99%,交易在该日期执行。

当价格上涨 y% 时,追踪止损也会上涨 y%。但是,如果价格下跌,追踪止损将不会改变其最后的值。

当价格 <= 追踪止损时,交易退出并且会有一个 exit_signal 为 1...

如果价格也下跌 y%,我目前无法让追踪止损下跌 y%....

期望的表格结果:

我得到的表: