Построение и анализ эффективности инвестиционных стратегий для финансовых рынков на основе простой регрессионной модели, страница 10

100*Abs(F-C)/C

Индикатор абсолютной ошибки прогноза

Periods:= Input("periods=",12, 120, 24);

Cor01:=Correl(C, Ref(C, -1), Periods, 0);

Cor02:=Correl(C, Ref(C, -2), Periods, 0);

Cor12:=Correl(Ref(C, -1), Ref(C, -2), Periods, 0);

S2:=Power(Stdev(Ref(C,-2),Periods),0.5);

S1:=Power(Stdev(Ref(C,-1),Periods),0.5);

S0:=Power(Stdev(C,Periods),0.5);

Ccoef:=S0*(Cor02- Cor01* Cor12)/(S2*(1-Cor12* Cor12));

Bcoef:=(Cor01* S0-Ccoef*Cor12*S2) / S1;

Abs(Ref( Mov(C, Periods,S)-Bcoef*Mov(Ref(C,-1),Periods,S)- Ccoef*Mov(Ref(C,-2),Periods,S) + Bcoef*C + Ccoef* Ref(C,-1),-1)-C)

Индикатор сравнения ошибки прогноза

Ошибка прогноза AR2 сравнивается с ошибкой простого прогноза (прогноз на завтра равен сегодняшней цене)

Periods:= Input("periods=",12, 120, 24);

Cor01:=Correl(C, Ref(C, -1), Periods, 0);

Cor02:=Correl(C, Ref(C, -2), Periods, 0);

Cor12:=Correl(Ref(C, -1), Ref(C, -2), Periods, 0);

S2:=Power(Stdev(Ref(C,-2),Periods),0.5);

S1:=Power(Stdev(Ref(C,-1),Periods),0.5);

S0:=Power(Stdev(C,Periods),0.5);

Ccoef:=S0*(Cor02- Cor01* Cor12)/(S2*(1-Cor12* Cor12));

Bcoef:=(Cor01* S0-Ccoef*Cor12*S2) / S1;

F:=Ref( Mov(C, Periods,S)-Bcoef*Mov(Ref(C,-1),Periods,S)- Ccoef*Mov(Ref(C,-2),Periods,S) + Bcoef*C + Ccoef* Ref(C,-1),-1);

If(C = Ref(C, -1), 5, Abs(F-C)/Abs(C - Ref(C, -1)))

Торговые системы на основе индикатора прогноза.

Optimist

Оптимистическая система.

Открывает позицию в направлении прогноза (X > Ref(X,-1)).

Cor01:=Correl(C, Ref(C, -1), Opt1, 0);

Cor02:=Correl(C, Ref(C, -2), Opt1, 0);

Cor12:=Correl(Ref(C, -1), Ref(C, -2), Opt1, 0);

S2:=Power(Stdev(Ref(C,-2),Opt1),0.5);

S1:=Power(Stdev(Ref(C,-1),Opt1),0.5);

S0:=Power(Stdev(C,Opt1),0.5);

Ccoef:=S0*(Cor02- Cor01* Cor12)/(S2*(1-Cor12* Cor12));

Bcoef:=(Cor01* S0-Ccoef*Cor12*S2) / S1;

Forecast_AR2:=Ref( Mov(C, Opt1,S)-Bcoef*Mov(Ref(C,-1),Opt1,S)- Ccoef*Mov(Ref(C,-2),Opt1,S) + Bcoef*C + Ccoef* Ref(C,-1),-1);

Forecast_AR2 > Ref(Forecast_AR2,-1)

System notes  (Optimist сучетомМА)    

Enter long

Cor01:=Correl(C, Ref(C, -1), opt1, 0);        

Cor02:=Correl(C, Ref(C, -2), opt1, 0);        

Cor12:=Correl(Ref(C, -1), Ref(C, -2), opt1, 0);      

S2:=Power(Stdev(Ref(C,-2),opt1),0.5);      

S1:=Power(Stdev(Ref(C,-1),opt1),0.5);      

S0:=Power(Stdev(C,opt1),0.5);       

Ccoef:=S0*(Cor02- Cor01* Cor12)/(S2*(1-Cor12*

Cor12));        

Bcoef:=(Cor01* S0-Ccoef*Cor12*S2) / S1;

ForecastAR2:=Ref( Mov(C, 

opt1,S)-Bcoef*Mov(Ref(C,-1),opt1,S)-     

Ccoef*Mov(Ref(C,-2),opt1,S) + Bcoef*C + Ccoef*         

Ref(C,-1),-1);

Mov(C,opt2,S)> Ref(Mov(C,opt2,S),-1)     

AND ForecastAR2 > Ref(ForecastAR2,-1) 

Enter short     

Cor01:=Correl(C, Ref(C, -1), opt1, 0);        

Cor02:=Correl(C, Ref(C, -2), opt1, 0);        

Cor12:=Correl(Ref(C, -1), Ref(C, -2), opt1, 0);      

S2:=Power(Stdev(Ref(C,-2),opt1),0.5);      

S1:=Power(Stdev(Ref(C,-1),opt1),0.5);      

S0:=Power(Stdev(C,opt1),0.5);       

Ccoef:=S0*(Cor02- Cor01* Cor12)/(S2*(1-Cor12*

Cor12));        

Bcoef:=(Cor01* S0-Ccoef*Cor12*S2) / S1;

ForecastAR2:=Ref( Mov(C, 

opt1,S)-Bcoef*Mov(Ref(C,-1),opt1,S)-     

Ccoef*Mov(Ref(C,-2),opt1,S) + Bcoef*C + Ccoef*         

Ref(C,-1),-1);

Mov(C,opt2,S)<Ref(Mov(C,opt2,S),-1)      

AND ForecastAR2 < Ref(ForecastAR2,-1) 

OPT1             

Range: From 5 to 20 by 5     

Current value: 5        

OPT2             

Range: From 1 to 13 by 2     

Current value: 1        

Осторожный Optimist

Открывает позицию в направлении прогноза (X > Ref(X,-1)), если этот рост показан 3 свечи подряд.

System notes             

Enter long       Cor01:=Correl(C, Ref(C, -1), opt1, 0);        

Cor02:=Correl(C, Ref(C, -2), opt1, 0);        

Cor12:=Correl(Ref(C, -1), Ref(C, -2), opt1, 0);      

S2:=Power(Stdev(Ref(C,-2),opt1),0.5);      

S1:=Power(Stdev(Ref(C,-1),opt1),0.5);      

S0:=Power(Stdev(C,opt1),0.5);