В приведенном ниже примере создается сигнал покупки (1), когда стоимость акций (IBM) падает более чем на 10% в день.
Затем он создает сигнал удержания еще на 4 дня. Если бы количество дней ожидания увеличилось, код стал бы более неуправляемым. Есть ли способ переписать код удержания, используя либо функцию применения, либо что-то подобное по эффективности (т. е. не цикл for)?
library(quantmod)
getSymbols("IBM")
buysig <- Lag(ifelse(dailyReturn(IBM) < -.10,1,0))
holdsig <- ifelse( Lag(sig) == 1 | Lag(sig, k=2) == 1 | Lag(sig, k=3) == 1 | Lag(sig, k=4) == 1, 1, 0)
Каждый раз, когда я чувствую, что работаю с приложением лучше, я делаю два шага назад.