首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用股票时更改符号名的r- FinancialInstrument包

使用股票时更改符号名的r- FinancialInstrument包
EN

Stack Overflow用户
提问于 2015-01-30 18:47:16
回答 1查看 178关注 0票数 2

我目前正在使用quantstrat/blotter构建一个策略。我使用的价格数据使用数字作为安全标识符,因此,这些数字是列名,也是用于函数(如stock() )中的synbol名称,以便导入金融工具。但是,如下面的可重复代码所示,只要在这些数字标识符上使用stock(),只要使用数据集的一小部分,FinancialInstrument包就会以奇怪的方式修改它们,方法是添加一个"X“并删除前导数字。基于此,是否对用于FinancialInstrument包的符号名有任何限制?

代码语言:javascript
复制
structure(c(9.17000007629395, 9.17000007629395, 9.17000007629395, 
9.17000007629395, 9.17000007629395, 9.17000007629395, 41.0999984741211, 
40.7599983215332, 40.4599990844727, 40.1500015258789, 40.5299987792969, 
40.5299987792969, 41.9900016784668, 41.7449989318848, 42.0299987792969, 
41.7200012207031, 42.25, 41.7000007629395, 29.3199996948242, 
29.3199996948242, 29.3199996948242, 29.3199996948242, 29.3199996948242, 
29.3199996948242), class = c("xts", "zoo"), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", index = structure(c(1403481600, 
1403568000, 1403654400, 1403740800, 1403827200, 1404086400), tzone = "UTC", tclass = "Date"), .Dim = c(6L, 
4L), .Dimnames = list(NULL, c("10078", "10104", "10107", "10108"
)))

colnames(x)
# "10078" "10104" "10107" "10108"

for(i in colnames(x)){
  stock(i,currency="USD",multiplier=1)
}

ls_stocks()
# "X0078" "X0104" "X0107" "X0108"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-30 19:42:49

仪器名称需要以字母或点开始。instrument函数使用make.names来确保这一点。如果能够通过一个数字找到你的乐器是很重要的,那么你可以把它作为一个标识符。

代码语言:javascript
复制
stock("X1234", currency("USD"), identifiers=list(num=1234))
getInstrument("1234")
#primary_id :"X1234"
#currency   :"USD"
#multiplier :1
#tick_size  :0.01
#identifiers:List of 1
# ..$ num:1234
#type       :"stock"

另一种添加标识符的方法

代码语言:javascript
复制
add.identifier("X1234", id2=42)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28242656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档