Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 2001

 
mytarmailS:

Ah, bem então esqueça o que escrevi, na minha língua i+1 é o futuro.


então vai com esta foto.


X[,10] é 1 , x[,1] é 10.

 
int ForecastSum = 0;

int ForecastStart = 1;

if(X[ForecastStart] <= -0.025 && X[ForecastStart] > -0.08201612905){ForecastSum++;}
if(X[ForecastStart + 1] > -0.057983871 && X[ForecastStart + 1] <= -0.01129032255 && X[ForecastStart] > 0.0219354839){ForecastSum--;}
if(X[ForecastStart + 1] <= -0.057983871){ForecastSum++;}
if(X[ForecastStart + 1] > 0.0702419355){ForecastSum--;}
if(X[ForecastStart + 2] > 0.01362903225 && X[ForecastStart + 2] <= 0.0564516129 && X[ForecastStart + 1] > 0.00153225805){ForecastSum--;}
if(X[ForecastStart + 2] <= 0.0564516129 && X[ForecastStart + 2] > -0.01153225805 && X[ForecastStart + 1] <= 0.0040322581 && X[ForecastStart] <= -0.00596774195){ForecastSum--;}
if(X[ForecastStart + 2] > -0.03370967745 && X[ForecastStart + 2] <= -0.00403225805 && X[ForecastStart] > 0.00032258065){ForecastSum++;}
if(X[ForecastStart + 2] <= -0.03370967745 && X[ForecastStart] > 0.02814516125){ForecastSum--;}
if(X[ForecastStart + 3] > -0.025 && X[ForecastStart + 3] <= -0.00403225805 && X[ForecastStart + 2] > -0.03370967745){ForecastSum++;}
if(X[ForecastStart + 2] > -0.0266935484 && X[ForecastStart + 2] <= -0.025){ForecastSum--;}
if(X[ForecastStart + 1] > 0.0091129032 && X[ForecastStart + 1] <= 0.0277419355 && X[ForecastStart] <= -0.00096774195){ForecastSum++;}
if(X[ForecastStart + 1] <= 0.0564516129 && X[ForecastStart + 1] > 0.03935483875){ForecastSum++;}
if(X[ForecastStart + 2] > 0.02346774195 && X[ForecastStart + 1] > -0.057983871 && X[ForecastStart + 1] <= -0.0212903226){ForecastSum--;}
if(X[ForecastStart + 2] > -0.03370967745 && X[ForecastStart + 2] <= 0.0233870968 && X[ForecastStart + 1] <= 0.0233870968 && X[ForecastStart] > 0.0091129032 && X[ForecastStart] <= 0.02766129035){ForecastSum++;}
if(X[ForecastStart + 2] > -0.03370967745 && X[ForecastStart + 1] <= -0.00120967745 && X[ForecastStart] > -0.00596774195 && X[ForecastStart] <= 0.0229032258){ForecastSum++;}
if(X[ForecastStart] > 0.0012903226){ForecastSum--;}
if(X[ForecastStart + 9] == X[ForecastStart + 9]){ForecastSum++;}

Eu fiz isto, passei-o pela matriz de dados e consegui uma divisão 50/50.

A fotografia do Maxim era mais fixe.

 
Evgeniy Chumakov:

Eu fiz isto, passei-o pela matriz de dados e consegui uma divisão 50/50.

A fotografia do Maxim era mais fixe.

Há um erro no teu código, é por isso que é uma treta.

Deve ser +- 98%.

tal como com o Maxim's))


============================

Eu treinei nos primeiros 5k de dados, os últimos mil para o teste.

É assim que este modelo deve funcionar +...

 ###  тест на нов. данных
Reference
Prediction  -1   1
        -1 619   4
        1    1 565
                                          
               Accuracy : 0.9958          
                 95% CI : (0.9902, 0.9986)
    No Information Rate : 0.5214          
    P-Value [Acc > NIR] : <2 e-16          
                                      


Mas este resultado nunca acontece, ou você estragou os dados ou os dados são distorcidos para que a previsão não tenha valor...

A propósito, o que você fez com os dados?

 
condition                                                                                                       
 
[1,] "X[,10]<=-0.025 & X[,10]>-0.08201612905"                                                                        
                                                                          
      pred
 [1,] "1" 


De cima como o teu, de baixo como o meu.


int ForecastSum = 0;

int ForecastStart = 1;

if(X[ForecastStart] <= -0.025 && X[ForecastStart] > -0.08201612905){ForecastSum++;}

ForecastSum é o que eu adiciono 1 a ou subtraio 1.

ForecastStart é com que barra eu começo (turno), a barra de previsão a 0 conta.


Às vezes recebo um valor de previsão de 0.

 
Evgeniy Chumakov:


De cima como o teu, de baixo como o meu.


ForecastSum é o que eu adiciono 1 a ou subtraio 1.

ForecastStart é com que barra eu começo (turno), a barra de previsão a 0 conta.


Às vezes recebo um valor de previsão de 0.

Eu não entendo.

Eu tenho X[,1] ...... X[,10]

você tem um intervalo de valores de 1 a 10

e você tem uma previsão inicial de 1 a 9, ou seja, um intervalo de valores de 9

Porquê? )

 
mytarmailS:

Eu não entendo.

Eu tenho X[,1] ...... X[,10]

você tem um intervalo de valores de 1 a 10

e você tem um intervalo de 1 a 9, ou seja, 9.

Porquê? )

ForecastStart + 9

1 (barra inicial) + 9 = 10;


array[número de célula] - é assim que funciona em mt4.

 
No arquivo que publiquei a primeira linha do arquivo é a última vez que um valor foi recebido, ele está localizado na célula 0 do array, depois as células 1,2,3,4,5,6,7,8 e assim por diante.
 
Evgeniy Chumakov:

1 (barra inicial) + 9 = 10;


array[número de célula] - em mt4 este é o caso.


mas o intervalo em si é nove.

ForecastStart <- 1:9

ForecastStart
 1 2 3 4 5 6 7 8 9

length(ForecastStart)
9
 
Evgeniy Chumakov:
No arquivo que eu postei a primeira linha no início é o último valor que veio no tempo. Ele está localizado na célula 0 do array, então vá para as células 1,2,3,4,5,6,7,8 etc.

Yeprst))))) quem faz isso? ))))

Vou só mudá-lo))

 

массив[0],[1],[2],[3],...[n]

tens de prever a cela 0.

ForecastStart não é um intervalo, mas uma compensação. Ou seja, eu começo com a célula 1, onde x[ForecastStart + 9] = 10 é uma célula array.

Portanto, o intervalo é de célula 1 a 10.