2015-11-11 2 views
0

Я хочу проверить, сколько раз дневной доход падает ниже определенного% в R, может кто-то, пожалуйста, помогите мне понять это? Я пытаюсь сделать это, используя quantmod.Как получить количество возвратов ниже порогового значения в R?

Я новичок в R, и я надеюсь, что я сделал первый шаг сбора данных правильно:

getSymbols("AAPL") 
prices<-AAPL[, "AAPL.Close"] 
returns<-diff(log(prices)) 

То есть, насколько я получил. Как я могу узнать, сколько раз возврат опустился ниже определенного порога?

ответ

2

Это довольно просто, чтобы определить функцию, чтобы сделать это:

library(quantmod) 
getSymbols("AAPL") 
prices = AAPL[, "AAPL.Close"] 
returns = diff(log(prices)) 

countThresh = function(returns, threshold) sum(returns < threshold, na.rm = TRUE) 
countThresh(returns, 0.01) # 1556 

В вашем примере, ежедневно возвращается Apple, ниже 1% 1556 раз.

+0

спасибо фг ню, я действительно ценю т, и это была большая помощь – Saleh

0

Вы также можете использовать функцию table

table(returns < threshold_value) 

Это дало бы количество раз return превышает и падает ниже порогового значения.

Обновление решения в соответствии с комментариями OP в

Чтобы получить даты, вы можете попробовать

index(returns[returns < threshold_value]) 
+0

замечательно, спасибо большое , Еще один вопрос, как я перечисляю все даты, когда доходность падает ниже этого порога? учитывая, что это класс xts-zoo? – Saleh

+0

@Saleh Я обновил решение. Посмотрите –

+0

Большое спасибо господину Шаху, я искренне его ценю. Вы внесли большой вклад в мой учебный процесс. – Saleh

Смежные вопросы