问题标签 [blotter]

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 投票
1 回答
671 浏览

r - Quantstrat 多种货币。Blotter::UpdateAcct 中可能存在的错误?

基本信息:

R版:3.1.0

吸墨纸:0.8.19

问题描述:

我正在尝试实现一个 quantstrat 帐户,该帐户使用不同货币的多个投资组合。

所以这是我的基本设置:

  • 1 个欧元账户
  • 1 个美元投资组合

所以为了让它工作,我必须设置一个汇率,我基于从雅虎检索到的数据。然后我应该运行我的基本策略,转换将在最后一步通过 updateAcct 函数自动完成。

现在问题来了……我认为 updateAcct 函数有一个错误。

我的代码:

然后我使用一些指标、信号、规则等......

一切正常,直到代码到达最后一行。

最后一行将给出错误消息: Error in isTRUE(invert) : object 'invert' not found

可能的错误: 所以我决定检查 updateAcct 函数在这里尝试一些调试......我很确定代码中有错误。第 63 行中的 if 子句查询 isTRUE(invert),但仅当它实际上为真时才创建 invert(参见 else 子句第 46 行)。但是 invert 没有初始化,因此如果它实际上是 false 代码将失败。

这是源代码吸墨纸(原始)

这就是我认为它应该看起来的样子(代码段第 28-50 行)......

TL;博士

我认为在货币转换不需要反转汇率时会发生 blogger:updateAcct 中的错误...

问题: 我是对的,这是一个错误吗?还是我错过了什么?

PS:

我通常会将其作为错误提交,但 A)我不知道如何向作者提交错误 B)我仍然是 quantstrat、blotter 和 Co. 的新手,我认为其他人也应该检查一下(和作者也经常在这里闲逛)...

0 投票
0 回答
314 浏览

r - How do blotter/quantstrat/quantmod/performanceanalytics handle internal cashflows and expiring instruments?

I don't understand how internal cashflows are handled in blotter/quantstrat/quantmod/performanceanalytics. This mainly concerns two aspects: Regular cashflows like dividends, coupons etc. as well as cashflows from expiring instruments (e.g. a cash settled in the money option). For equities this seems not too much of an issue as one can always use dividend adjusted prices and it is relatively rare that stocks get delisted. For coupon bonds or options however, I don't get how this is handled.

So my questions are:

  • Is there a generic mechanism to handle internal cashflows (dividends, coupons, repayments etc.) in these packages?
  • If so, is there some documentation for this and where can I find the relevant implementation in the source code (i.e. pointers to specific R files and/or functions would be great)?

Thanks in advance

0 投票
1 回答
342 浏览

r - Quantstrat 和 Windows

我查看了以前的通信,遵循了建议,但仍然无法安装 quantstrat 和吸墨纸。我不知所措。也许我错过了以前的帖子,如果有人能指出我正确的方向,它会有所帮助,我将不胜感激。非常感谢。

操作:我下载了 quantstrat 包并发出以下命令:

结果如下:

将包安装到“C:/Users/George/Documents/R/win-library/3.2”<br>(因为未指定“lib”)
警告:无效包“C:/Users/George/Downloads/quantstrat_0.9.1669。 tar'
错误:错误:未指定软件包
install.packages 中的警告:
运行命令 '"C:/PROGRA~1/R/R-32~1.0/bin/x64/R" CMD INSTALL -l "C:\Users\ George\Documents\R\win-library\3.2" "C:/Users/George/Downloads/quantstrat_0.9.1669.tar"'
在 install.packages 中有状态 1 警告:
安装包 'C:/Users/George/Downloads /quantstrat_0.9.1669.tar' 具有非零退出状态

我应该补充一点,我已经安装了 Rx64 3.2。

成功,解决了问题。我下载了quantstrat 和 blogger的.zip 版本(目前都是 3.1.3)并且都安装成功。有趣的。

我注意到没有支持文件 - 是这样吗?谢谢。

0 投票
1 回答
3095 浏览

r - 无法安装用于 quantstrat 的吸墨纸包

我正在尝试quantstrat在 R 中使用该软件包。我已使用该软件包上传/安装了该软件包

但是,一旦我使用

我收到消息:

加载所需的包:quantstrat 失败并出现错误:找不到 'quantstrat' 所需的包 'blotter''</p>

然后我用

但收到以下消息:

仅以源代码形式提供的包,可能需要编译 C/C++/Fortran:'blotter' 这些将不会安装

任何人都可以提供一些建议吗?

0 投票
0 回答
60 浏览

r - 无法安装吸墨纸包

我完全不知所措,并尝试了 StackOverflow 上其他人建议的几种解决方案。我努力安装 quanstrat,最终在@MrFlick 的帮助下设法解决了这个问题。但是,quanstrat 需要安装软件包 blogger。我已经尝试了几种通过源代码执行此操作的方法,上传 zip 文件,安装其他软件包.. 没有任何效果。任何建议都将受到欢迎。(与 Rtools 类似的问题?)

出于同样的原因,也无法按照建议安装 Rtools。R 版本问题?

0 投票
1 回答
196 浏览

r - 在 quantstrat/blotter 中使用 R 中的 addDiv(command)

在 R 中使用 addDiv 命令的格式是什么?就输入而言,我知道如何使用该功能,但我无法弄清楚它应该放在哪里超出一般的想法。我是否将它放在我实例化投资组合的位置之后?以下是 R 提供的帮助文章:

将现金股息交易添加到投资组合中。

描述

添加现金红利不会影响头寸数量,就像拆分一样。

用法

论据

Portfolio 一个投资组合名称,指向一个以 结构的投资组合对象initPortf

Symbol 投资组合中包含的符号的工具标识符,例如 IBM。

TxnDate 交易日期为 ISO 8601,例如“2008-09-01”或“2010-01-05 09:54:23.12345”。

DivPerShare 每股或每单位数量支付的现金股利金额。

TxnFees 与交易相关的费用,例如佣金。阅读详情。

ConMult 如果未在工具规范中定义,则符号的合约或工具乘数。

verbose 如果TRUE(默认)该函数将交易的元素以一行的形式打印到屏幕上,例如“2007-01-08 IBM 50 @ 77.6”。禁止使用FALSE.

... 任何其他传递参数。

笔记

**# TODO 将 TxnTypes 添加到 $txn 表

**# TODO 添加 AsOfDate****

0 投票
1 回答
466 浏览

r - 试图了解记事本帐户 Unrealized.PL 和 End.Eq 计算

在记事本中编写策略时,我遇到了一个问题,即End.Eq我的交易后的结果与我手动计算的预期结果不符。所以我写了一些简单的 R 代码来更好地理解吸墨纸是如何工作的。同样在这里,结果与我的预期不同。

也许有更好的洞察力的人可以帮助我解释一下。

上面的代码用 1000 美元的现金初始化了一个投资组合。我以“2008-04-30”的收盘价买入 1 个“MDY”。然后我在一个月后以“2008-05-30”的收盘价平仓。

由于投资组合不再包含未平仓头寸,我预计收益End.Eq为 1000+8.257217 = 1008.257217,但我看到的结果要低得多,因为Unrealized.PL = -6.72.

但那是从哪里来的呢?所有职位都已关闭,所以我预计Unrealized.PL = 0。尽管交易似乎仍然给了我预期的结果Net.Trading.PL = 8.257217

查看投资组合账户,我发现Unrealized.PL = -6.72我无法解释,但显然也导致了意想不到的End.Eq结果。

总结一下,我的两个问题是:

  1. 寻求解释 Unrealized.PL 是如何产生的?
  2. 如果可能的话,我怎样才能避免这种情况?
0 投票
1 回答
249 浏览

r - Blotter 盘中实现盈亏

这是关于R包amzn_testdemo中交易实现PL的问题。blotter这些交易是一系列 7 笔交易,在日内开仓和平仓。调用getTxns('amzn_port', 'amzn')返回

为什么Net.Txn.Realized.PL开仓交易非零,平仓交易为零?对于每日交易,在交易结束当天实现的损益将非零。

blotter在 64 位 Windows 上运行 0.9.1666。

谢谢你的耐心。

0 投票
1 回答
1059 浏览

r - 从 R 转换为 quantstrat 设置以进行交易策略回测

我正在尝试使用“quantstrat”包对交易策略进行回测。我的策略由 4 个指标、3 个不同的 EMA 和 1 个滞后 EMA 组成。

我想在以下情况下做多:EMA1 > EMA2 & EMA1 > EMA3 & EMA1_lag < EMA1 我想在以下情况下平仓平仓:EMA1 < EMA3

这很简单,但我无法将其写入 quantstrat 环境。

这是两个示例中使用的数据完整性检查功能:

这是我想要的吸墨纸代码:

我尝试使用 quantstrat(使用add.indicator, add.signal, add.rule)复制上述策略,但结果肯定不同。这里是 quantstrat 的第二个代码:

谁能帮我理解为什么第二个代码没有给出相同的结果?我认为我的错误在add.indicator, add.signal,add.rule设置中,但我无法准确地弄清楚。

0 投票
1 回答
1082 浏览

r - 将技术指标添加到图表.Posn

出于某种原因,我无法将 ROC 信号添加到吸墨纸图表中。在文档中它应该被允许。我想用这个指标创建一个新的图表。有人可以帮忙吗?