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

back-testing - 如何优化 TradingView Pine 脚本中的参数?

我想在 TradingView Pine 回测中优化指标参数。使用其他工具可以做到这一点,但是当我在 TradingView 中搜索此功能时,我什么也没找到。有人可以帮忙吗?

如果在 TradingView 中不可能,那么有没有办法用其他工具来做呢?

提前致谢!

0 投票
0 回答
679 浏览

algorithmic-trading - MetaTrader4 中的 MACD 示例智能交易系统不起作用

简单的问题是:为什么 MACD 样本不起作用?

我想使用 MACD 示例 EA(我指的是 MetaTrader 中默认提供的那个)来查看 MACD 参数是否有效。我把我想要的参数放在这部分,而不是12,26,9

但是我遇到了一个问题。当我开始使用“策略中心”进行回测时,我发现交易订单没有按预期执行。实际上,我希望它们在信号线和 MACD 线之间的“交叉”中执行。但它没有发生。我曾尝试使用 0MQ 将交易订单从 Python 发送到 MetaTrader,如果我必须学习 MQL 来编写智能交易系统,我很绝望。我相信这个问题有一个快速的解决方案。感谢您的关注,并提前非常感谢您的友好回答。

0 投票
1 回答
395 浏览

r - Quantstrat:订单大小函数

我是 R 新手,我正试图弄清楚如何让 quantstrat 使用自定义 ordersize 函数。我们的想法是始终将所有可用股权投资于比特币,以便与 B&H 策略相媲美。我提供了可重现的代码。起初它似乎工作正常,但当我查看我的订单时出现问题。也许他们的收盘价之间有些不匹配,但 quantstrat 并没有根据可用资产来订购比特币的数量。例如(从=“2016-12-31”到=“2018-01-01”)在“2017-01-30”,quantstrat 首先在 920.730042 购买价值 10000 美元的比特币,订单数量为 10.8609467963901。在“2017-03-20”,它以 1047.51001 出售初始投资,因此可用权益现在应该是 (10.8609467963901 x 1047.51001)= 11376。9504873,我希望 quantstrat 在 BTCUSD = 1129.869995 时在“2017-04-04”再次购买时应该订购 (11376.9504873 / 1129.869995)= 10.0692562309 BTC。而是订购了 10.3482135951968 BTC。有人可以指出我正确的方向吗?


0 投票
1 回答
596 浏览

trading - 在 Amibroker 回测中扩大购买头寸

我在 Amibroker 中有一个简单的回测代码。它看起来像这样;

我的资产是10000美元。此代码有效,但限制是当它购买时,全部 10000 美元的股权都被投入购买。我想要的是这样的;

生成时BuySignal(),购买 1000 美元或 10% 的股权。BuySignal()每当生成此金额时,请继续购买此金额。如果SellSignal()生成,则卖出整个仓位。

如何修改代码以缩小买入仓位?

我正在使用 Amibroker ver6.28。

0 投票
1 回答
223 浏览

python - Python中股票的排名分析以进行回测

我想使用排名分析在 python 中执行一些因素回测,即根据某些因素(比如市盈率、CEO 的吸引力等)对某个月份的所有股票进行排名,然后报告总体百分位表现(如前 10% 的平均回报率为 x% 等)。在 R 中有一个包可以做到这一点:

https://cran.r-project.org/web/packages/backtest/vignettes/backtest.pdf

python 中的 bt 包提供了整体性能,而不是单个存储桶的性能。

重申一下,我的主要目标是获得存储桶的性能。很多用于 python 的回测包只提供整体性能。

0 投票
1 回答
468 浏览

python - 分钟数据不起作用滑索

我想使用以下方法获取一些分钟的历史数据:

这给了我以下错误:

这很奇怪,因为当我使用 1d 而不是 1m 时它确实有效,那为什么呢?以及如何解决此问题才能获得分钟数据。

0 投票
1 回答
330 浏览

python - Pyalgotrade - 如何获得所有未平仓头寸的平均成交价

在每个柱上使用 pyalgotrade 时,我需要股票的平均成交价……我无法找到一种方法来使用 getAvgFillPrice 函数的标注来获得相同的成交价。这将帮助我决定是否进入下一笔交易。任何帮助将不胜感激。我尝试了以下代码:

但我收到以下错误:

在这方面的任何帮助将不胜感激......

0 投票
1 回答
856 浏览

python - Python:如何计算移动平均交叉的数量+每个交叉之间的最高点?

我正在回测一个简单的移动平均线策略,使用价格(例如日线)和一个简单的移动平均线。我想知道价格在我的股票 X 的历史数据中超过或低于移动平均线的频率。换句话说,我想找出交叉的总数。

我还想找出每个交叉点之间的最大/最小点。随着价格在移动平均线附近移动,它有时高于平均线,有时低于平均线。我想测量这些变化。我的意思是交叉 A 和交叉 B 之间的最高刻度或百分比距离,使用交叉 A 作为基线。

请看这张图片以澄清我的意思:

在此处输入图像描述

我将不胜感激任何可以为我指明如何在 Python 中编写代码的正确方向的帮助:-)

0 投票
0 回答
722 浏览

r - `colnames<-`(`*tmp*`, value = seq(ncol(tmp_val))) 中的错误:

我对编码相当陌生,我正在尝试选择 r。我正在quantstrat. 我在网上查看了具体细节,这帮助我清理了我的代码,但我也在尝试创建自定义函数,这就是问题开始的地方。我遵循规则>信号>指标层次结构,我知道问题是指标和我试图添加的一些自定义数据之间的组合mktdata。我正在添加一个从 excel 中导入的 xls 格式的额外列,如下所示:

一旦我查看head函数,我就知道数据已正确添加。然后我继续创建我的自定义指标,我只是在其中调整add.indicatorSMA函数。

从这里开始,这一切一直持续到最后。一旦我尝试应用该策略,我会得到以下信息:

我已经运行traceback并得到以下信息:

4: stop("尝试在小于二维的对象上设置 'colnames'") 3: colnames<-( *tmp*, value = seq(ncol(tmp_val))) 2: applyIndi​​cators(strategy = strategy, mktdata = mktdata, parameters = parameters , ...) 1: 应用策略(策略 = 策略名称,投资组合 = 投资组合名称)

为了得到PEValues一些东西,我这样做了:

在这个阶段,老实说,我不知道该做什么,而且很多论坛仍然超出我的能力范围。任何帮助将不胜感激,我将非常乐意回答任何问题。

根据要求,使用样本数据dput(head(mktdata)

head(mktdata)

0 投票
1 回答
569 浏览

python - 回测股票世界

我想通过回测一系列股票来制定趋势跟踪策略;让我们说所有纽约证券交易所或标准普尔500股票。我今天问这个问题是因为我不确定如何处理海量历史价格数据的存储/组织。

经过几个小时的研究,我来到这里,询问您的经验和意识。我将非常感谢您可以分享有关此主题的任何信息/意识


个人经历背景:

-我知道如何编码。是电气工程专业,不是CS专业。

-我知道如何将单个股票代码的股票数据提取到 Excel 中。熟悉在 ThinkOrSwim 上使用过滤和自定义研究。

应用背景: 从 1995 年到今天,让我们根据相对强度/动量来评估表现最好的股票。我们将比较许多技术特征来制定策略。这样做的关键是拥有大量股票的数据,我们可以使用 python、C#、R 或任何其他编码语言对这些数据进行回测。然后,我们可以通过评估技术驱动的进场和退出的回报、欧米茄比率、超额回报中值和 Jensen 阿尔法(每周测量)来确定可能的策略。


这是我无法弄清楚下一步是什么的地方:

- 将所有 S&P500 公司的数据加载到单个 Excel 工作簿中是行不通的。我觉得它的数据太多,excel无法处理。每个代码将有数 MB 的价格数据。

- 获取并存储宇宙中每个代码的价格数据的最佳方法是什么?我们是否在这里查看诸如 SQL 或 Microsoft 访问之类的东西?我不知道; 我对处理大量这样的数据的主题没有足够的认识。你有什么想法?


在过去的一段时间内,我曾使用 ToS 根据真/假参数过滤股票;然而,ToS 的功能是有限的。我想要一个更灵活的回测引擎,比如用 python 或 C# 编写的代码。不确定 Rscript 是否有用。- 也许,有一些我没有意识到的图书馆会让这一切成为可能?如果有请告诉我。

我知道 Quantopia 和其他基于网络的 Quant 平台都在附近。这些是我进行回测的最佳选择吗?对他们有什么想法吗?


我让这太复杂了吗?在 excel、ToS 甚至是 Tradingview 中,对单个股票或多个股票的策略进行回测不是问题。但是有很多数据,我不确定存储这些数据然后使用 python 脚本或其他东西来执行回测的最佳选择是什么。


随机最终想法: -最终想探索一些人工智能辅助,以优化基于参数创建的策略。我知道这是一件事,但不确定在哪里可以了解更多信息。如果你这样做,请告诉我。


感谢你们。我希望这不是太多。如果您能分享任何知识以提高我对该主题的认识,我将不胜感激。

推特:@b_gumm