2013-08-15 1 views
-1

Я хочу инициализировать пару curreny с помощью FinancialInstrument. Данные содержат обменные курсы для определенной валютной пары (например, USD_CHF, USD_EUR и т. Д.).R: FinancialInstrument инициализирует инструмент кросс-валюты не работает

Но это не работает, почему?

> 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 не работает ... и мой код в дальнейшем тоже.

+2

Вы выпалил немало вопросов сегодня. Я предлагаю взять чашку кофе и садиться с документацией в течение нескольких часов. – GSee

+0

Я изучил документацию, но не все четко описано или я не понимаю этого просто так. Ответ ниже велик и точно, что я искал. Но я все равно хватаю чашечку кофе ;-) – MichiZH

+0

Посмотрите на демо тоже – GSee

ответ

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), если хотите, чтобы getInstrumentgetSymbols.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" 
+0

Это отлично работает и имеет гораздо больше смысла, чем Instrument. Большое спасибо. Однако я все еще получаю эту ошибку и не знаю почему: Ошибка в get (Symbol, pos = env): object 'USDCHF' не найден – MichiZH

+0

Поскольку вы не читали сообщение, я [сказал вам видеть] (http: // stackoverflow.com/questions/18247760/blotter-position-fill-doesnt-work-on-chart-guy-yollins-example#comment26762967_18247760) в другом вопросе о вас пару часов назад. – GSee

+0

О да, жаль, что я определенно сделал на сегодня, работал слишком долго ... Thx снова GSee. – MichiZH