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

 
Anatolii Zainchkovskii:

Per esempio, se analizzo solo 10 barre della storia per prevedere 1 barra nel futuro, una rete neurale troverà centinaia di modelli da queste 10 barre, ma io suggerisco 1 modello e alleno la rete neurale in avanti.


La NS difficilmente troverà qualcosa da sola, prima deve fare comunque delle analisi statistiche, oppure può trovare qualcosa che non è chiaro. Sto ancora cercando di adattare il NS al TS esistente, solo per evitare di dover scrivere tutte le regole manualmente

Potete usare alglib in ogni caso, potete provarlo, imparate NS in 5 righe

 
Maxim Dmitrievsky:

È improbabile che il NS trovi qualcosa da solo, devi comunque fare prima l'analisi statistica... o potrebbe trovare qualcosa che non è chiaro. Cerco ancora di adattare il NS al TS esistente, solo per non prescrivere tutte le regole manualmente

In ogni caso, potete prendere alglib e provarlo, insegna il NS in 5 righe


Quando leggo questo vedo che sei arrivato a un Random Forest, me lo dicono da molto tempo ormai.... e riguardo all'analisi statistica ho solo detto che era 50/50, ho continuato a giocare al robot e ho scritto i risultati in un file... Non posso vedere quali segni possono cambiare o avere importanza per il risultato, così ho deciso di lasciare che la rete neurale riconosca qualcosa che non posso vedere...

 
Anatolii Zainchkovskii:

Non ho mai visto un esempio di come usare Algleb NS, l'ho cercato e sono arrivato a questo thread e ho visto che hai cercato di implementarlo. Leggendo ulteriormente vedo che sei arrivato a Random Forest, di cui mi hanno parlato per molto tempo.... e riguardo all'analisi statistica ho appena detto 50/50, ho eseguito il robot e scritto i risultati in un file... Ho cercato di usare un neurone per riconoscere qualcosa che non posso vedere...

Ecco un esempio di Random Forest, usando esempi dalla tabella di moltiplicazione e poi uno addestrato conta gli esempi (genera risposte nel registro)
#include <Math\Alglib\dataanalysis.mqh>
//+------------------------------------------------------------------+
#define _rand(min,max) ((rand()/(double)SHORT_MAX)*((max)-(min))+min)
//+------------------------------------------------------------------+
void OnStart()
{
   MathSrand(1600);
   CDecisionForest      Trf;
   //CDecisionForestShell RFshell;
   CMatrixDouble        PatternsMatrix;
   CDFReport            RF_report;
   int RFinfo;
   double vector[2], out[1];
   
   // подготовка данных
   PatternsMatrix.Resize(100,3);
   int m=0;     // first pattern
   for(int i=1; i<=10; i++)
      for(int j=1; j<=10; j++)
      {
         PatternsMatrix[m].Set(0,i/10.0);       // input 1
         PatternsMatrix[m].Set(1,j/10.0);       // input 2
         PatternsMatrix[m].Set(2,(i*j)/100.0);  // target
         m++; //next pattern
      }
   // создание RF
   CDForest::DFBuildRandomDecisionForest(PatternsMatrix,100,2,1,500,0.95,RFinfo,Trf,RF_report);
   Print("Info=",RFinfo,"   RMSE Error=",DoubleToString(CDForest::DFRMSError(Trf,PatternsMatrix,100),5));  
   // проверка сети на целочисленных данных
   string s="Тест 1 >> ";
   for(int i=1; i<=10; i++)
   {
      int d1=(int)_rand(1,10), d2=(int)_rand(1,10);
      vector[0]=d1/10.0;
      vector[1]=d2/10.0;
      CDForest::DFProcess(Trf,vector,out);
      s+=(string)d1+"*"+(string)d2+"="+DoubleToString(out[0]*100,0)+" // ";
   }
   Print(s);
   // проверка сети на дробныx данных
   s="Тест 2 >> ";
   for(int i=1; i<=5; i++)
   {
      double d1=NormalizeDouble(_rand(1,10),1), d2=NormalizeDouble(_rand(1,10),1);
      vector[0]=d1/10.0;
      vector[1]=d2/10.0;
       CDForest::DFProcess(Trf,vector,out);
      s+=DoubleToString(d1,1)+"*"+DoubleToString(d2,1)+"="+DoubleToString(out[0]*100,2)+
         "("+DoubleToString(d1*d2,2)+") // ";
   }
   Print(s);
}
ed ecco un esempio per MLP https://www.mql5.com/ru/forum/8265/page2#comment_333746
Библиотеки: ALGLIB - библиотека численного анализа
Библиотеки: ALGLIB - библиотека численного анализа
  • 2012.10.12
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: ALGLIB - библиотека численного анализа
 
Maxim Dmitrievsky:

Beh, il portafoglio non è stazionario, non va da sigma a sigma, ma crolla periodicamente... e poi ricalcola e crolla di nuovo

Non dovrebbe andare da sigma a sigma, dovrebbe vivere finché la cointegrazione tra le righe è viva.


PS. La cointegrazione è quando due serie non stazionarie sono aggiunte in modo speciale e una serie stazionaria è ottenuta in virtù di questa aggiunta speciale. C'è un test speciale per questo. Questa idea è ampiamente utilizzata dai creatori di portafogli.

Ci sono molti test che garantiscono un "crash".

 
SanSanych Fomenko:

Non dovrebbe andare da sigma a sigma, ma dovrebbe vivere finché la cointegrazione tra le righe è viva.


PS. La cointegrazione è quando si aggiungono due serie non stazionarie in un modo speciale e si ottiene una serie stazionaria in virtù di questa aggiunta speciale. C'è un test speciale per questo. Questa idea è ampiamente utilizzata dai creatori di portafogli.

Un sacco di test che garantiscono contro un "crash".


Non lo sapevo :) ci sono altre "variazioni sul tema"

e senza test si può vedere tutto nel tester

https://www.mql5.com/ru/code/19630

Cointegration
Cointegration
  • voti: 18
  • 2017.12.26
  • Maxim Dmitrievsky
  • www.mql5.com
Индикатор находит коэффициенты линейной регрессии для каждого из выбранных инструментов со всеми остальными, и выводит на график в виде стандартных отклонений. Сумма всех кривых...
 
Maxim Dmitrievsky:
Ecco un esempio di Random Forest, usando esempi dalla tabella di moltiplicazione e poi uno addestrato conta gli esempi (genera risposte nel registro)
ed ecco un esempio per MLP https://www.mql5.com/ru/forum/8265/page2#comment_333746

che regalo. grazie Max!!!

 
Maxim Dmitrievsky:

Non lo sapevo :) ci sono altre "variazioni sul tema"

e senza test si può vedere tutto nel tester

https://www.mql5.com/ru/code/19630

Non ho visto alcuna prova che il tuo indicatore sia legato alla parola "cointegrazione". La linea arancione sembra essere una serie chiaramente non stazionaria, mentre dovrebbe essere stazionaria, anche se il campione è piccolo, quindi la cointegrazione deve essere provata.
 
SanSanych Fomenko:
Non ho visto nessuna prova che il tuo indicatore abbia qualcosa a che fare con la parola "cointegrazione". Un pezzo di grafico - linea arancione apparentemente, sembra chiaramente serie non stazionaria, e dovrebbe essere stazionaria, anche se il campione è piccolo, quindi la cointegrazione deve essere dimostrata.

La cointegrazione è una relazione lineare tra serie temporali che hanno una serie stazionaria, tutte vere

i simboli devono essere abbinati... può contare la regressione lineare per molti simboli, non solo 2. Ancora peggio, per 2 non conterà abbastanza giusto, perché ricalcolare la regressione lineare 2 volte, potmou che originariamente fatto multicurrency. C'è un bot, i risultati versati in un altro argomento. Ho alcuni indici che hanno una dipendenza esplicita, ma il mio profitto è piccolo, circa il 100% annuo.

C'è la stessa merda, ma attraverso il modello non lineare, ma si basa sugli incrementi e non sui prezzi nudi

P.s. Non ho visto una sola persona che faccia trading con successo su strumenti cointegrati nel forex (perché non ce ne sono quasi). Perché non importa come ci si dimena, se non c'è una dipendenza fondamentale, non c'è.
 
SanSanych Fomenko:
Non ho visto nessuna prova che il tuo indicatore abbia qualcosa a che fare con la parola "cointegrazione". Un pezzo di grafico - la linea arancione sembra apparentemente una serie non stazionaria, mentre dovrebbe essere stazionaria, anche se il campione è piccolo, quindi la cointegrazione deve essere dimostrata.

Ecco una cointegrazione sulla prima, e si costruisce il canale, e sulla seconda, come questa stessa cointegrazione arriva alla fine...

Ecco un altro esempio di come crolla la cointegrazione...
File:
g7p4.png  47 kb
0zz22.PNG  56 kb
 
Maxim Dmitrievsky:

La cointegrazione è una relazione lineare tra serie temporali che hanno una serie stazionaria, tutte vere

i simboli devono essere abbinati... può contare la regressione lineare per molti simboli, non solo 2. Ancora peggio, per 2 non conterà abbastanza giusto, perché ricalcolare la regressione lineare 2 volte, potmou che originariamente fatto multicurrency. C'è un bot, i risultati versati in un altro argomento. Guadagna su alcuni indici, che hanno una dipendenza esplicita, ma il mio profitto è piccolo, circa il 100% annuo.

C'è la stessa merda, ma attraverso un modello non lineare, ma si basa sugli incrementi e non sui prezzi grezzi.

p.s. Non ho visto una sola persona fare trading di strumenti cointegrati con successo nel forex (perché non ce ne sono quasi)

Non ci sono persone serie nel forex - è un mercato di scommesse da quattro soldi. Ecco perché non è un indicatore.

Ho un modello simile, ma è limitato dallo spread, che è variabile.

I modelli di autoregressione vettoriale sono ampiamente utilizzati in altri mercati, ci sono molti strumenti già pronti. Granger sta fiorendo.