Я новичок здесь.
Я хочу сделать что-то вроде этого: мне нужно найти индекс, в котором условие выполняется в первый раз, чтобы найти начальную позицию, это может быть как с положительной, так и с отрицательной стороны (поэтому я использовал ifеще заявление);пока это работает, но когда я нашел эту позицию, я хочу сохранить ее в таблице, но также использовать ее, чтобы найти следующую первую позицию / индекс, для которого выполняется другое условие (точка закрытия). поэтому в моем примере первая открытая позиция - 387;чтобы найти позицию закрытия, мне нужна первая позиция, для которой верно соотношение> = m, но также индекс больше 387 .;если бы я сделал это правильно, то эта позиция / индекс была бы 1743, и это то, что я должен / должен использовать снова, чтобы начать все сначала, каково минимальное значение, для которого выполняется условие открывающей позиции, но индекс должен быть большечем 1743. Это довольно сложный вопрос, но я в основном хочу знать, как я могу расположить индекс 387;что в остальной части для определения позиции закрытия этот индекс 387 используется в качестве начальной точки, а затем 1743 используется для проверки, является ли первое условие верхней части формулы истинным. Это должно быть выполнено для всего набора данных.
i <- starting_from
while (i <= length(retail_stocks$ratio)){
if ((min(which((retail_stocks$ratio > (m + k*s)) == TRUE))) < (min(which((retail_stocks$ratio < (m - k*s)) == TRUE)))) {
pos$open[i] <- min(which(retail_stocks$ratio > (m + k*s)))
i <- pos$open[i]
if(min(which(retail_stocks$ratio <= m))){
pos$close[i] <- (min(which(retail_stocks$ratio <= m)))
i <- pos$close[i]
} else {
pos$open[i] <- min(which(retail_stocks$ratio < (m - k*s)))
#pos$close[i] <- min(which(retail_stocks$ratio >= m))
i <- pos$open[i]
if(min(which(retail_stocks$ratio >= m))){
pos$close[i] <- (min(which(retail_stocks$ratio >= m)))
i <- pos$close[i]
}
}
}