v=0;
n=1000;
for (i in 1:n) {
x=rnorm(n);
y=array(x);
y[1]=x[1];
for (j in 2:n) { y[j]=y[j-1]+x[j]; }
d1=max(y[1:(n/2)])-min(y[1:(n/2)]);
d2=max(y)-min(y);
v=v+d2/d1;
}
v=v/n;
print(v);
в среднем получается 1.48
не сказать, чтоб сильное отличие от корня из двух, но все же.
посчитал это соотношение для SPY и EURUSD (дневки с 2003 года):
Код:
sp=read.table("d:\\R\\1\\eurusd.txt",sep=" ",col.names=c("D","O","H","L","C"));
sp$d1=log(sp$H/sp$L);
sp$d2[1]=sp$d1[1];
for (i in 2:length(sp$H)) {
sp$d2[i]=log(max(sp$H[i],sp$H[i-1])/min(sp$L[i],sp$L[i-1]));
}
mean(sp$d2/sp$d1)
Обе цифры больше корня из двух. Значит, тренды существуют.
А 1.48 - ну что ж, отклонение от 1.414 равно +4.7%. Это больше, чем 3.3% (т.е. одна "сигма"), но меньше чем 6.7% (т.е. две "сигмы"). А обычно используется правило трёх "сигм", соответствующее доверительной вероятности 95%.
Это значит, для более-менее адекватной оценки должно быть n>=4000.