L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 2001

 
mytarmailS:

Ah, allora dimentica quello che ho scritto, nella mia lingua i+1 è il futuro


allora vai con questa 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++;}

Ho fatto questo, l'ho fatto passare attraverso l'array di dati e ho ottenuto una divisione 50/50.

La foto di Maxim era più figa.

 
Evgeniy Chumakov:

Ho fatto questo, l'ho fatto passare attraverso l'array di dati e ho ottenuto una divisione 50/50.

La foto di Maxim era più figa.

C'è un errore nel tuo codice, ecco perché è una stronzata.

Dovrebbe essere +- 98%.

proprio come con Maxim's))


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

Mi sono allenato sui primi 5k di dati, gli ultimi mille per il test.

È così che questo modello dovrebbe funzionare +-

 ###  тест на нов. данных
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          
                                      


Ma questo risultato non si verifica mai, o hai incasinato i dati o i dati sono distorti in modo che la previsione non ha valore...

A proposito, cosa avete fatto con i dati?

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


Sopra come il tuo, sotto come il mio.


int ForecastSum = 0;

int ForecastStart = 1;

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

ForecastSum è ciò a cui aggiungo o sottraggo 1.

ForecastStart è la barra con cui inizio (shift), la barra di previsione a 0 conteggi.


A volte ottengo un valore di previsione di 0.

 
Evgeniy Chumakov:


Sopra come il tuo, sotto come il mio.


ForecastSum è ciò a cui aggiungo o sottraggo 1.

ForecastStart è la barra con cui inizio (shift), la barra di previsione a 0 conteggi.


A volte ottengo un valore di previsione di 0.

Non capisco.

Ho X[,1] ...... X[,10]

hai una gamma di valori da 1 a 10

e avete una previsione da 1 a 9. Cioè l'intervallo di valori è 9.

Perché? )

 
mytarmailS:

Non capisco.

Ho X[,1] ...... X[,10]

hai una gamma di valori da 1 a 10

e si ha un intervallo da 1 a 9, cioè 9.

Perché? )

ForecastStart + 9

1 (barra iniziale) + 9 = 10;


array[numero di cella] - è così che funziona in mt4.

 
Nel file che ho postato la prima linea del file è l'ultima volta che è stato ricevuto un valore, si trova nella cella 0 dell'array, poi le celle 1,2,3,4,5,6,7,8 e così via.
 
Evgeniy Chumakov:

1 (barra iniziale) + 9 = 10;


array[numero di cella] - in mt4 questo è il caso.


ma la gamma stessa è di nove

ForecastStart <- 1:9

ForecastStart
 1 2 3 4 5 6 7 8 9

length(ForecastStart)
9
 
Evgeniy Chumakov:
Nel file che ho postato la prima riga all'inizio è l'ultimo valore che è arrivato in tempo. Si trova nella cella 0 dell'array, poi vanno le celle 1,2,3,4,5,6,7,8 ecc.

Yeprst))))) chi lo fa? ))))

Lo cambierò semplicemente))

 

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

è necessario prevedere la cella 0.

ForecastStart non è un intervallo, ma un offset. Cioè, inizio con la cella 1. Dove x[ForecastStart + 9] = 10 è una cella dell'array.

Pertanto, l'intervallo è dalla cella 1 alla 10.