I am a self-learning R, and I am struggling with a code search for the stop time (kns, ks) of an arbitrary random process, which can be defined as follows:
Basis : k0 = inf {u> = 0: max_ [0, u] - min_ [0, u] = H}
if X (k0) = max_ [0, k0] X, then k0s = inf {u in [0, k0]: X (u) = min_ [0, k0] X}
if X (k0) = min_ [0, k0] X, then k0s = inf {u in [0, k0]: X (u) = max_ [0, k0]} X}
Step n to n + 1 :
if $ X (kn) -X (ksn) = H, then:
k (n + 1) = inf {t> = kn: max_ [kn, t]} XX (t) = H}
ks (n + 1) = inf {t in [kn, k (n + 1)]: X (t) = max_ [kn, k (n + 1)] X}
if X (kn) -X (ksn) = - H, then:
k (n + 1) = inf {t> = n: X (t) -min {[kn, t] X = H}
k (n + 1) = inf {t in [kn, k (n + 1)]: X (t) = min_ [kn, k (n + 1)] X}
(k0s, ks) (ks1, k1), (ks2, k2).
step<-function(v){
z=numeric(300)
for(i in 1:300){z[i]=max(v[1:i])-min(v[1:i])}
k0<-min(which(z>=0.0005))
k0s<-if (v[k0]==max(v[1:k0])) min(which(v==min(v[1:k0]))) else if (v[k0]==min(v[1:k0])) min(which(v==max(v[1:k0])))
x=numeric(300)
if (v[k0]-v[k0s]>=0.0005) {
for (i in k0:300){x[i]=max(v[k0:i])-v[i]}
k1<-min(which(x>=0.0005))
k1s<-min(which(v==max(v[k0:k1])))
}
if (v[k0]-v[k0s]<=-0.0005) {
for (i in k0:300) {x[i]=-min(v[k0:i])+v[i]}
k1<-min(which(x>=0.0005))
k1s<-min(which(v==min(v[k0:k1])))
}
y=numeric(300)
if (v[k1]-v[k1s]>=0.0005) {
for (i in k1:300){y[i]=max(v[k1:i])-v[i]}
k2<-min(which(y>=0.0005))
k2s<-min(which(v==max(v[k1:k2])))
}
if (v[k1]-v[k1s]<=-0.0005) {
for (i in k1:300) {y[i]=-min(v[k1:i])+v[i]}
k2<-min(which(y>=0.0005))
k2s<-min(which(v==min(v[k1:k2])))
}
return(c(k0s,k0,k1s,k1,k2s,k2))
}
v , :
v<-rnorm(300)
.
, (ksn, kn) ( ). (kns, ks) {k (n-1) s, k (n-1)}, ; , . - / - , ?
, , .
, .