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

 
Maxim Dmitrievsky:

Ecco uno di questi. Ci sono solo 12 schede, non 24.

Ho degli errori

>>> print(train_score, " ", tst_score)

1.0 0.5454545454545454

Questa è un'alfabetizzazione per l'argomento Maxim puramente dalla spalla. Il file che mi hai appena inviato è un totale di 12 voci. Per iniziare dalla cima, ho bisogno di avere 20-24 mosse, poi posso iniziare con 11 ingressi (per le mie capacità questo è il massimo) e andare a loro, riducendo il numero di ingressi e sfogliandoli. Quando ottimizzo dall'alto verso il basso, quindi le prime dieci corse singole, lo faccio in modo da scegliere la corsa migliore e iniziare l'allenamento normale da essa. Se non ho abbastanza voci, di solito parto dal basso con 5 voci e cerco di costruire il numero di voci e seleziono la versione peggiore delle prime dieci corse, al fine di rimandare l'inizio nella zona di massimo overshooting durante l'allenamento. Nel primo caso sto risparmiando ferocemente le mie risorse. Nel secondo caso scelgo l'opzione peggiore e cerco di passare attraverso tutte le varianti possibili il più possibile.

Quello che avete tali dati è una stronzata. Guarda cosa ho ottenuto e mi fido di questi risultati, solo non mi fido dei tuoi input, che sbirciano nel futuro. Maxim, perché non ti vergogni di farlo? I bambini ci guardano e tu cerchi di mostrare loro delle immagini e ti chiedi perché non funziona con i feedback?

Diamo solo ora vi invierò il modello e file di formazione che si sa quale numero di ingresso corrisponde alle vostre designazioni, ma se non si mostra il modello di lavoro in cicli di feedback non farò molto di più. Tutti vogliono sapere come funziona. Quindi la macchina di Shaitan non lavora gratis.


Solo un estratto di codice di base

vv0[q]=0;//12    вместо нулей подай значения своих входов
vv1[q]=0;//10
vv2[q]=0;//8
vv3[q]=0;//2
double Ress1=getBinaryClassificator1(vv0[q],vv1[q],vv2[q],vv3[q]);  //Вызов результатов полиномов 
double Ress11=getBinaryClassificator2(vv0[q],vv1[q],vv2[q],vv3[q]);

double getBinaryClassificator1(double v0, double v1, double v2, double v3) {
   double x0 = 2.0 * (v0 + 0.00352160000000379) / 0.0060209999999973896 - 1.0;
   double x1 = 2.0 * (v1 + 0.00321680000000524) / 0.006628599999996879 - 1.0;
   double x2 = 2.0 * (v2 + 0.00257640000000836) / 0.00577599999999978 - 1.0;
   double x3 = 2.0 * (v3 + 0.00197520000000417) / 0.00414859999999794 - 1.0;
   double decision = 0.6226912928759895 * x0
  -0.013192612137203167 * x0 * x1
  + 0.9920844327176781 * x2
  + 1.3060686015831136 * x0 * x2
  -3.5395778364116093 * x1 * x2
  -1.1394019349164468 * x3
  + 2.5659630606860158 * x0 * x3
  + 0.5395778364116095 * x1 * x3
  + 0.31090589270008795 * sigmoid(x0)
  + 0.009674582233948988 * sigmoid(x1)
  -0.0839929639401935 * sigmoid(x0 + x1)
  + 0.012313104661389622 * sigmoid(x2)
  + 0.30474934036939316 * sigmoid(x0 + x2)
  -0.5958663148636764 * sigmoid(x1 + x2)
  + 0.002638522427440633 * sigmoid(x0 + x1 + x2)
  -0.05013192612137203 * sigmoid(x3)
  + 0.014951627088830254 * sigmoid(x0 + x3)
  -0.13412489006156553 * sigmoid(x1 + x3)
  -0.006596306068601583 * sigmoid(x0 + x1 + x3)
  + 0.04397537379067722 * sigmoid(x2 + x3)
  + 0.1363236587510994 * sigmoid(x0 + x2 + x3)
  + 0.6952506596306068 * sigmoid(x1 + x2 + x3)
  -0.29331574318381703 * sigmoid(x0 + x1 + x2 + x3)
  + 1.0738786279683377 * sigmoid(1.0 + x0)
  -1.073438874230431 * sigmoid(1.0 + x1)
  -0.4256816182937555 * sigmoid(1.0 + x0 + x1)
  + 1.0708003518029903 * sigmoid(1.0 + x2)
  + 0.9656992084432717 * sigmoid(1.0 + x1 + x2)
  -3.1314863676341247 * sigmoid(1.0 + x3)
  -0.8500439753737907 * sigmoid(1.0 + x0 + x3)
  + 1.0281442392260334 * sigmoid(1.0 + x1 + x3)
  + 0.8544415127528584 * sigmoid(1.0 + x0 + x1 + x3)
  -0.21328056288478453 * sigmoid(1.0 + x0 + x1 + x2 + x3);
   return decision;
}
double sigmoid(double x) {
   if (MathAbs(x) < 1.0) {
      return 2.0 * signum(x) - x;
   }
   return signum(x);
}
double getBinaryClassificator2(double v0, double v1, double v2, double v3) {
   double x0 = 2.0 * (v0 + 0.00518320000001116) / 0.00871940000000327 - 1.0;
   double x1 = 2.0 * (v1 + 0.00542880000001134) / 0.01145720000000306 - 1.0;
   double x2 = 2.0 * (v2 + 0.00578500000001125) / 0.00872540000000166 - 1.0;
   double x3 = 2.0 * (v3 + 0.00496500000001143) / 0.00698900000000191 - 1.0;
   double decision = -0.17965023847376788 * x0
  + 1.7416534181240064 * x1
  + 0.5389507154213037 * x0 * x1
  + 0.5023847376788553 * x2
  -0.16653418124006358 * x1 * x2
  -0.06836248012718601 * x3
  -0.8191573926868044 * x1 * x3
  -0.029809220985691574 * sigmoid(x0)
  -0.009141494435612083 * sigmoid(x1)
  + 0.00794912559618442 * sigmoid(x0 + x1)
  + 1.7150238473767885 * sigmoid(x2)
  -1.2686804451510334 * sigmoid(x0 + x2)
  + 0.051271860095389504 * sigmoid(x1 + x2)
  + 0.05405405405405406 * sigmoid(x0 + x1 + x2)
  -1.095389507154213 * sigmoid(x3)
  -0.2444356120826709 * sigmoid(x0 + x3)
  + 0.34737678855325915 * sigmoid(x1 + x3)
  + 0.9264705882352942 * sigmoid(x0 + x1 + x3)
  + 0.16176470588235295 * sigmoid(x2 + x3)
  -0.7682829888712241 * sigmoid(x0 + x2 + x3)
  -0.16335453100158984 * sigmoid(x1 + x2 + x3)
  + 0.7551669316375199 * sigmoid(x0 + x1 + x2 + x3)
  -2.048489666136725 * sigmoid(1.0 + x0)
  -0.31756756756756754 * sigmoid(1.0 + x1)
  -0.08982511923688394 * sigmoid(1.0 + x0 + x1)
  + 1.4666136724960255 * sigmoid(1.0 + x1 + x2);
   return decision;
}
double signum(double x) {
  if (x == 0.0) {
    return 0.0;
  }
  if (x > 0.0) {
    return 1.0;
  }
  return -1.0;
}

Dal file allegato identifico i numeri degli ingressi secondo le mie marcature. Sto aspettando i risultati del test OMF.

File:
Si_Splice_10.txt  102 kb
 

Oltre alle stime del modello.

I predittori indicano il numero di colonne nel file

258 numero totale di vettori. Ho tolto la classe 0 e ho lasciato la classe 2 rinominata a zero, poiché erano in equilibrio numerico con la classe 1, 19.60 è l'errore quadratico, o meglio la differenza tra lineare dritto e quadratico dovrebbe tendere a zero, 79.141 è la capacità di generalizzazione generale, quando si arriva a 100 la differenza tra gli errori diminuisce, 69.767 è la spicificazione. Il lotto di controllo totale è di 75 con una generalizzabilità di 70. La risposta è NON SAPERE abbiamo ottenuto 77 vettori del campione totale dove la trama di controllo ne aveva 17.

Infatti, ho ottenuto risultati peggiori nell'allenamento ma molto migliori nella trama di controllo. Inoltre, non era un sito di prova, come il vostro, ma un sito di controllo, quello che la rete non aveva visto affatto. Quella di prova è quando si allena su quella di addestramento in modo che funzioni bene su quella di prova, cioè potenzialmente la rete vede la sezione di prova durante l'addestramento. Il test non lo fa. Domande????

 

Per favore ditemi come trovare un ordine con un profitto massimo (mql4).

Grazie mille.

 
a5l3e5x:

Per favore ditemi come trovare un ordine con un profitto massimo (mql4).

Grazie mille.

Amico mio, nessuno usa MT4, un ordine ha un parametro di profitto. Dovremmo provare tutti gli ordini per leggere questo parametro e scegliere quello massimo. Questo è tutto... in poche parole...
 
Mihail Marchukajtes:

Sei interessato a questa sfida?

Forum sul trading, sistemi di trading automatico e test di strategie di trading

L'apprendimento automatico nel trading: teoria, pratica, trading e oltre

Rorschach, 2020.07.14 19:21

Chi vuole esercitarsi? Entrata in classifica al primo posto, uscita al terzo. 2 e 4 sono test. Qualche chiarimento, 1 incremento grafico, 3 segnali grafici per comprare qualche sistema "classico". Tra l'altro, una domanda a raffica, ns è in grado di emulare ligic e con indicatori di memoria, qualcosa come uno zigzag e un indicatore massimo/minimo?



 
Rorschach:

È interessante un tale compito?


Suppongo di sì, ma mi stai suggerendo di inserire delle cifre da una foto?
 
Mihail Marchukajtes:
Ok, ma mi stai chiedendo di inserire le cifre da una foto?

Allora preparo i dati, 350 esempi, 100 ingressi vanno bene?

 
Rorschach:

Preparo i dati allora, 350 esempi, 100 ingressi vanno bene?

Sì, è figo in generale, ma io rimango dell'idea che gli input dovrebbero essere tre volte tanto gli esempi in modo che l'algoritmo abbia qualcosa da scegliere. Penso che farò un altro video, ci vorrebbe troppo tempo per scrivere. C'è una teoria della matrice quadrata dalla quale sono arrivato a questa conclusione... Preparare un campione...
 

Controllate, gente, non per il gusto della pubblicità. Sono andato a uno dei loro open day e ho pensato abbastanza di essere autodidatta, nel caso in cui mi stessi immaginando tutto sbagliato. Volevo avere una conferma ufficiale delle loro conoscenze, per così dire. Proprio l'altro giorno ho letto di Elon Musk e del suo Neurolink, che sarà presentato ad agosto. E qui come se la lettera è venuto, quindi non ho capito come scaricare il contenuto così guardare l'immagine.

In generale l'argomento è interessante quindi possiamo riunirci lì di nascosto e parlare dell'essenziale, che ne dite?

 
Mihail Marchukajtes:
Sì, è abbastanza figo, ma penso che ci dovrebbe essere il triplo degli esempi in modo che l'algoritmo abbia molto da scegliere. Sento che dovrei registrare un altro video, ci vorrebbe troppo tempo per scriverlo. C'è una teoria della matrice quadrata dalla quale sono arrivato a questa conclusione... Preparare un campione...

I miei risultati sono dettagliati qui. Per la convalida moltiplico la serie originale per -1

File:
Files.zip  4 kb