我想使用FinancialInstrument初始化一对货币对。该数据包含某种货币对的汇率(例如USD_CHF,USD_EUR等)。
但这不起作用,为什么?
> currency("USD")
[1] "USD"
> instrument("USD_CHF",currency="USD",multiplier=1)
primary_id :"USD_CHF"
currency :"USD"
multiplier :1
tick_size : NULL
identifiers: list()
type : NULL
> getInstrument("USD_CHF")
[1] FALSE
Warning message:
In getInstrument("USD_CHF") :
instrument USD_CHF not found, please create it first.
或者首先它在创建后有效,并且输出具有正确的primary_id。但是getInstrument不起作用......之后我的代码也没有。
答案 0 :(得分:2)
它没有保存仪器,因为assign_i
参数的默认值为FALSE
。
> instrument("USD_CHF", currency="USD", multiplier=1, assign_i=TRUE)
[1] "USD_CHF"
> getInstrument("USD_CHF")
primary_id :"USD_CHF"
currency :"USD"
multiplier :1
tick_size : NULL
identifiers: list()
type : NULL
如果你使用那个命名惯例,你将会让你的生活变得困难,因为parse_id
将不知道如何理解这一点。我建议USDCHF
或USD.CHF
。如果您愿意,可以使用USD_CHF
作为标识符(除了primary_id),以便getInstrument
(和getSymbols.FI
)仍然可以通过该名称找到它。
此外,您最好使用exchange_rate
构造函数
> currency("USD")
[1] "USD"
> currency("CHF")
[1] "CHF"
> exchange_rate("USDCHF")
[1] "USDCHF"
> getInstrument("USDCHF")
primary_id :"USDCHF"
currency :"CHF"
multiplier :1
tick_size :0.01
identifiers : list()
type :"exchange_rate" "currency"
counter_currency:"USD"