问题标签 [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 - 使用 R Blotter 和 quantstrat 进行多币种投资组合和账户
在账户中使用多种货币以及在投资组合中使用不同货币面额的证券进行建模的最佳方法是什么?
- 最好让投资组合和账户保持单一货币?然后,blotter 会在需要时处理 fx,以及如何将 fx 速率加载到 .blotter?
- 或者,账户可以是多币种的多币种权益金额吗?
我很乐意尝试细节,但真的可以听取吸墨纸专家关于一般方法的建议。
抱歉,如果这已在其他地方有所提及。我搜索并找不到它。
示例:包含 5 只美元股票和 5 只欧元股票的整体。创建一个交易过去 3 个月中最高 5% 的欧元回报的策略(即美元股票回报既是股票回报又是外汇回报)。
r - R QUANTSTRAT - 应用信号时出错
我知道这个问题已经被问过了,但是这里发布的所有答案都对我不起作用。我回测了一个简单的单指标策略,但最终出现以下错误:
我正在使用的数据显示出价/询价量、总交易量、出价/询价报价、报价和一秒钟内的出价/询价交易数量:
具有以下结构:
策略非常简单:当给定间隔的移动窗口上的运行总和高于或等于某个阈值时,应该有一个信号。
运行总和的指标运行良好:
给
但我不明白为什么 newc olumns 被称为“ X1.runsum ”,而不仅仅是参数标签 =“runsum”中所述的“runsum” 。这可能会导致调用信号时的命名问题:
最终会出现如开头所述的错误。
我试过这个:
- 将 add.signal 中的名称从更改
column = X1.runsum
为column = runsum
- 没有帮助 - 下载较新版本的 RRT 包 - 没有帮助
- 指标功能也有技巧
arguments = list(x = quote(data$ask.vol[,1])
- 没有帮助
我不能使用标准的 OHLC 函数,因为我的数据包含的信息不仅仅是 OHLC。
你能帮忙吗?
r - Quantstrat 策略 - 错误
我的 quastrat 策略返回了一个我还没有发现正在讨论的错误。
策略很简单:计算给定时间段内的滚动总和。如果滚动总和超过某个阈值,则进入多头并同时提交两个 oco 订单,止盈和止损在 +/- 5% 的距离内。
代码是:
数据结构如下:
它是一个 xts 对象,显示一秒钟内的买卖量/交易频率,并且提到的错误说:
订单链似乎没有问题,因为订单簿包含所有三个价格正确的订单:
有任何想法吗?
我在某处发现指定限价单价格,例如:
但它没有成功。
r - quantstrat:如何在同一个柱上执行?
我知道你不应该这样做,但由于我几乎完全根据每日和每周数据进行交易,我认为如果我能够在同一个柱上执行,我会获得更现实的交易想法次日开盘时买入。谢谢!
r - Quantstrat 可用于为生产系统生成订单吗
在使用 Quantstrat 成功回测一个策略后,有没有什么方法可以使用相同的信号/指标/规则代码来生成生产交易的订单?
使用订单簿似乎可以做到这一点,但我还没有找到任何示例或演示来解释如何使用截至目前的数据为未来生成订单。
任何有关如何完成此任务的指示或建议将不胜感激。
r - xtsExtra 中的颜色选项
我无法使用 xtsExtra 调整多个时间序列图的颜色。
这是一个最小示例的代码:
plot.zoo 命令产生
,
而 xtsExtra 包中的 plot 命令导致
.
在第二个图中,两个时间序列很好地重叠,但似乎对 col 选项不敏感。
我正在使用 xtsExtra 软件包的最新版本 0.0-1(修订版 862)。
据我了解,xts 和 xtsExtra 包被设计为 zoo 的扩展,并且应该使用相同的参数(加上许多其他参数)。即使我可以使用屏幕选项在 plot.zoo 中获得相同的覆盖行为,但我不能真正求助于使用它,因为导致我的问题的对 plot.xts 的调用在 quantstrat 包中(函数 chart.forward.training 和 chart .forward.testing 例如)我不愿意修改。(顺便说一句,这些函数中的 dev.new() 也给我带来了麻烦。)
问题:为什么 xtsExtra 包中的 plot 似乎没有响应 col= 选项,如果修改对函数的调用不是一个真正的选项,可以做些什么?
r - quantstrat enable.rule 不起作用
当我使用时,enable.rule
我无法覆盖规则的 internal enabled=FALSE
。
例如:
当我将此代码放在 applyStrategy 之前时:
该规则将不会启用或激活。激活规则的唯一方法是将其内部启用更改为TRUE
. 我已经尝试过精确的拼写,但它对我不起作用。
这不是一个大问题,因为我可以参数化规则的内部启用并以这种方式控制它,但更愿意使用现有代码来运行我的系统。
enable.rule
对问题有任何见解吗?
r - R - 优选和 getPrice 的 Quantstrat 问题
目前正在使用 Quandl 期货数据在 quantstrat 中制定策略。但是,当我在添加指标、信号和订单规则后尝试 applyStrategy() 时,我收到以下错误消息,Error in getPrice(mktdata, prefer = prefer) : object 'prefer' not found
. applyIndicators()
并且applySignals()
在调试时运行良好,因此错误最有可能出现在规则的处理中。下面是 mktdata 变量的尾部,该变量在应用信号后产生,以及代码的结尾部分。
mkt 数据:
代码:
输出sessionInfo()
:
r - 如何在 quantStrat 中应用 long only add.distribution 参数集 - param.combo [[param.label]] 中的 simpleError
我正在应用与 luxor-demo 中类似的 add.distribution 规则,而我的策略只有一个多头头寸。
整个策略有效,但是在应用参数集时出现以下错误:
TakeProfitLONG 47 0.047
TakeProfitLONG 47 0.047 计算表达式的结果:
param.combo[[param.label]] 中的 simpleError:下标越界
得到任务 47 的结果 numValues: 47, numResults: 47, 停止: FALSE 返回状态 FALSE 评估 # 48: $param.combo
我正在尝试根据简单的获利规则运行分配(从 stopLoss 或 trailingStop 获得相同的结果):
我添加分布如下:
并应用集合:
从我有限的调试来看,参数集似乎是一个简单的向量,而在 apply.paramset 中,以下函数失败:
在这里,我对 R 太陌生了,因为我只研究了 4 周,但可能会调用:
可能导致错误?
必须像我一样向新人道歉,但是有没有人遇到过这种情况或者可以帮助如何将分布应用于仅长期策略中的一个项目?
提前谢谢了!
编辑 1: SessionInfo()
r - 将日内数据加载到 R 中以使用 quantmod 处理它
我需要修改这个示例代码,以便将它与我应该从这里和从这里获取的盘中数据一起使用。据我了解,该示例中的代码适用于任何历史数据(或不适用?),所以我的问题归结为以必要的格式(我的意思是每天或当日)加载初始数据的问题。
正如我从这个问题的答案中了解到的那样,不可能加载日内数据getSymbols()
。我试图将这些数据下载到我的硬盘驱动器中,然后使用read.csv()
函数获取它,但这种方法效果不佳。最后,我在各种文章(例如这里)中发现了这个问题的一些解决方案,但它们似乎都非常复杂和“人为”。
所以,我的问题是如何从程序员的角度优雅而正确地将给定的盘中数据加载到给定的代码中,而无需重新发明轮子?
PS 我对 R 和 quantstrat 中的时间序列分析非常陌生,因此如果我的问题似乎晦涩难懂,请告诉我你需要知道什么来回答它。