Я не очень хороший R, но, может быть, массивы начинаются с 0? (вместо 1)
SAV[1] = 0
STO[1] = 100
==>
SAV[0] = 0
STO[0] = 100
И мое второе предположение касается условий if в циклах for. Я бы поставил квадратные скобки над всем выражением, примерно так.
for (t in 2:1000) {
if ((price[t]>9.9)&(price[t]<10.1)&(SAV[t-1]=0)) {
STO[t] = STO [t-1]
SAV[t] = 0
}
}
Не думаю, что это могло бы помочь, но стоит попробовать;)
Edit:
Попробуйте использовать SAV[t-1]==0
вместо SAV[t-1]=0
в вашем условии if ...
Редактировать 2:
Также попробуйте использовать оператор && вместо & one ...