问题标签 [quantstrat]
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.
r - 为 quantstrat 使用外部提供的指标数据
我正在考虑使用 R 和 quantstrat 来回测一些策略。我查看了一些文档和 youtube 视频,以了解是否可以做我想做的事。我对 R 完全陌生,我愿意深入研究必要的文档,但如果我想要的东西是可能的,我想得到一个提示。
我已经研究了一些使用 quantstrat 进行回测的示例,它们的共同点是它们使用由 R 函数根据价格数据计算的指标
然而,我需要使用的是几个外部计算的指标,我将它们作为真/假信息与价格数据一起使用。因此,我在包含 OHLC 数据的 CSV 中有许多附加列,这些列的值大多数时候是错误的,但在某些行上是正确的。我想生成信号,例如使用其中两个列并说“如果两者都是正确的,则在最后一天的高点设置止损买入,在最后一天的低点设置止损并计算头寸大小,以便最大损失是基于高低差的固定金额。
还有更多的规则要应用,然后是关于何时平仓获利,何时调整止损或何时取消未触发的止损买入订单,我还必须处理第二天开盘价已经高于止损买入价,但那是另一回事。此外,我必须考虑如何回测只有日终数据的日终策略(接下来的几天蜡烛可能会同时高位止损买入和止损卖出,而不是会发生什么模棱两可的事情)
首先,我想知道是否可以将此类外部指标数据作为 quantstrat 策略的来源
如果您说是或否,这将对我有所帮助,并且可能会向我指出适用的文档。谢谢你的建议!
编辑:
实际上,我现在创建了一个带有 OHLC 列的 CSV 文件,并添加了另一个带有 1 和 0 的列,就像这个非常简单的示例:
我把它放到一个 xts 对象中,并设置了一个 quantstrat 策略,在最后一列是 1 的那些日子之后,我设法触发了止损限价空头订单。
在 1 月 25 日的第一根蜡烛上已经有了第一个信号,低点为 25,我预计系统会触发价格水平为 25 的卖出止损限价单。这也是订单簿似乎显示的内容。然而,系统实际上在第二天以 30 的水平卖出,这是开盘价。对于最后一天的第二个信号,订单被触发,但从未执行。这可能是正确的,因为开始时开盘价已经低于止损限制水平,但是在最后一天价格上涨至 31,因此应该触发订单。
我想对于第二个信号,我需要编写更多的逻辑程序,但对于第一个信号,我不知道为什么订单在 30 处执行。
r - 整个投资组合的贸易统计
我正在使用 R / Quantstrat 进行回测,一切正常。
我有一个策略,它每年只为一个交易品种生成几笔交易,但我的投资组合中有很多交易品种。
我喜欢 tradeStats() 函数生成的统计数据,但它只生成每个符号的数据。每个符号只有几笔交易,符号之间的数字差异很大。
问题:是否可以像 tradeStats 那样以累积的方式为整个投资组合生成数字?我使用基于风险的头寸规模,对于每笔交易,总是有相同数量的风险股本和相同数量的股本获得。
quantstrat - quantstrat (2016.3.11 版) demo luxor.4 警告信息
我已经从源代码安装了最新的 quantstrat,之前 luxor.4 的错误消失了,但仍然收到如下警告消息:
运行sessionInfo()
返回以下内容:
我是 R 新手,我无法验证此警告是否微不足道。有人可以给我一些建议吗?谢谢
r - 在 R (quantstrat) 中格式化 POSIX
我正在从变量中提取日期:“curIndex”。
这是代码的样子
输出是这样的:
我在ruleOrderProc
包内工作quantstrat
。
订单时间需要POSIXlt
为订单簿。有谁知道如何处理我得到的这种时髦的日期格式?
如果是这样,谢谢!
r - 在 R 中放置和触发的意外止损订单
抱歉造成任何不便:我从 r-sig-finance 交叉发布,因为我没有收到关于以下问题的任何意见。
++++
大家好,
我正在测试一个简单的布林线突破:
if Close > UpperBand Then Long
if Close < LowerbandBand Then Short
如果 Close 跨越 MidBand 然后退出
这是发生的事情:
- 我按预期在收盘价低于下限时进入空头头寸
- 进入空头头寸后,在订单簿中我可以看到正在创建止损限价单:低于我的空头头寸的入场价格
- 价格进一步下跌,止损被触发,我的空头在止损阈值处平仓,但低于入场价
我希望:
a) 在我的空头入场价之上创建的止损 b) 在亏损时触发,而不是在做空时触发。我在这里做错了什么?
我不确定我的代码的哪些部分会有所帮助,在向您充斥订单簿、交易等之前。我将从我的信号和规则开始(如下)。非常感谢您的意见。谢谢!
r - quantstrat 演示 luxor.8 错误:runSum(x, n) 中的错误:“n”无效
我今天安装了最新的包,把所有的demo都跑到了luxor.8,其他都很好,但是luxor.8还是报错如下:
输出sessionInfo()
:
我注意到 luxor.8 在最新包中产生的这个错误与以前版本包中产生的错误不同。所以,我假设这个最新版本的包已经解决了 luxor.8 中之前的错误。如果是这样,我报告的错误应该是微不足道的,对吧?
有人可以就我上面报告的错误给我一些建议吗?谢谢
r - IKTrading::sigAND 的交叉参数真的有必要吗?
sigAND
当两个选定的列都具有值(或不是 NA)时,在创建具有日期的新列时很有用。感谢 Ilya Kipnis 和他的IKTrading
包裹。
但是,我注意到在这个函数的帮助页面中,cross
是使用的。我很困惑,如果我对sigAND
上面的用法的理解是正确的,那么应该没有cross
.
我查看了sigAND
源代码,并对其进行了测试。该函数可以正常工作,并且当cross = TRUE
输出列只是NA
or的向量时FALSE
。cross
因此,在函数中似乎没有真正的意义。
这是我的假数据和输入:
这是sigAND
带有一些注释的源代码,以帮助自己理解代码(我对 R 和编程仍然很陌生)。
我加载了数据和输入,并在没有注释掉的第一行和最后几行的情况下运行了上面的源代码。
我得到以下输出时cross = FALSE
:
我得到以下输出时cross = TRUE
:
第二种情况表明,在那里没有意义cross
。或者,我在这里遗漏了一些重要的东西吗?有人可以看看吗?
r - Quantstart`osMaxPos`源代码第二个错字被证实?
我osMaxPos
只是想更好地理解 quantstrat,但是,有两行代码让我感到困惑,我认为它们是拼写错误。
源代码可以在这个链接找到简单地说,两个错字错误是: 1. source code line 212 if(orderqty+pos>PosLimit[,"MaxPos"]) orderqty <- PosLimit[,"MinPos"]-pos
,但我认为作者是故意的if (orderqty+pos < PosLimit[, "MinPos"]) orderqty <- PosLimit[,"MinPos"]-pos
;2. 源代码第 226 行是orderqty <- pos
,但我认为代码本来是orderqty <- -pos
在不久的将来, R-Forge 跟踪器上可能会有这个问题的答案。如果没有,我希望有人可以通过stackoverflow帮助我。我试图通过以下简单示例来证明第二个拼写错误。
这个例子取了部分源代码并运行了一些假数据来证明第二个拼写错误确实存在。但我是交易和 R 的新手,所以我可能完全错了。谁能帮我看看,谢谢。
r - Optimizing Quanstrat MACD with apply.paramset returns error
I am trying to test some trading strategies involving digital currency. One such strategy involves MACD crossovers, but I would like to optimize the nSlow
& nFast
parameters.
Here's a reproducible example (which runs):
The above runs perfectly-fine. However, I want to vary the nFast
and nSlow
parameters to the MACD()
function:
This gives me the following error, which I'm not sure how to debug:
What am I doing wrong? FWIW, I am using Ubuntu 12.04/14.04. Any help is much appreciated. Thanks!!
r - 如何选择合适的 R 版本来使用 quantstrat 和 blotter 包?
我应该担心最新的 R 与最新的 quantstrat 和 blotter 软件包之间的兼容性吗?
在我写这个问题的时候,最新的blotter更新了2016-01-16 15:48:02+01,最新的quantstrat更新了2016-03-11 17:31:38+01,最新的stable R 3.2.4 于 2016 年 3 月 10 日星期四更新。
基于它们的更新时间差异,我是否应该假设 quantstrat 可以在最新的 R 版本中正常工作,而 blogger 可能无法在最新的 R 中正常工作?是否有一种安全且简单的方法可以为最新的 quantstrat 和 blotter 软件包选择合适的 R 版本?
谢谢