Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 620

 
Anatolii Zainchkovskii:

Wenn ich zum Beispiel nur 10 Balken aus der Vergangenheit analysiere, um einen Balken in der Zukunft vorherzusagen, wird ein neuronales Netz Hunderte von Mustern aus diesen 10 Balken finden, aber ich schlage ein Muster vor und trainiere das neuronale Netz auf Vorwärtsbewegungen.


Der NS wird kaum von selbst etwas finden, er muss ohnehin erst eine statistische Analyse durchführen, oder er wird etwas finden, das nicht eindeutig ist. Ich versuche immer noch, den NS an den bestehenden TS anzupassen, um nicht alle Regeln manuell schreiben zu müssen.

Sie können alglib auf jeden Fall verwenden, Sie können es ausprobieren, Sie lernen NS in 5 Zeilen

 
Maxim Dmitrievsky:

Es ist unwahrscheinlich, dass der NS von sich aus etwas findet, man muss sowieso erst eine statistische Analyse durchführen... oder er findet etwas, das nicht klar ist. Ich versuche immer noch, den NS an den bestehenden TS anzupassen, nur um nicht alle Regeln manuell vorschreiben zu müssen

In jedem Fall können Sie alglib nehmen und es ausprobieren, es lehrt den NS in 5 Zeilen


Wenn ich das lese, sehe ich, dass du zu einem Random Forest gekommen bist, das wurde mir schon lange gesagt.... und über die statistische Analyse habe ich nur gesagt, dass es 50/50 ist, ich habe weiter den Roboter gespielt und die Ergebnisse in eine Datei geschrieben... Ich kann nicht sehen, welche Zeichen sich ändern oder für das Ergebnis wichtig sein könnten, also habe ich beschlossen, das neuronale Netz etwas erkennen zu lassen, das ich nicht sehen kann...

 
Anatolii Zainchkovskii:

Ich habe noch nie ein Beispiel für die Verwendung von Algleb NS gesehen, ich habe danach gesucht und bin zu diesem Thread gekommen und habe gesehen, dass Sie versucht haben, es zu implementieren. Wenn ich weiter lese, sehe ich, dass Sie zu Random Forest gekommen sind, von dem mir schon lange erzählt wurde .... und über die statistische Analyse habe ich gerade 50/50 gesagt, ich habe den Roboter laufen lassen und die Ergebnisse in eine Datei geschrieben... Ich habe versucht, ein Neuronetz zu benutzen, um etwas zu erkennen, das ich nicht sehen kann...

Hier ein Beispiel für Random Forest, bei dem Beispiele aus dem Einmaleins verwendet werden und dann ein trainiertes Beispiel gezählt wird (erzeugt Antworten im Protokoll)
#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);
}
und hier ist ein Beispiel für MLP https://www.mql5.com/ru/forum/8265/page2#comment_333746
Библиотеки: ALGLIB - библиотека численного анализа
Библиотеки: ALGLIB - библиотека численного анализа
  • 2012.10.12
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: ALGLIB - библиотека численного анализа
 
Maxim Dmitrievsky:

Nun, das Portfolio ist nicht stationär, es geht nicht von Sigma zu Sigma, sondern bricht periodisch ein ... und dann wird es neu berechnet und bricht wieder ein

Sie sollte nicht von Sigma zu Sigma gehen, sondern so lange bestehen, wie die Kointegration zwischen den Zeilen besteht.


PS. Von Kointegration spricht man, wenn zwei nicht-stationäre Reihen auf besondere Weise addiert werden und sich durch diese spezielle Addition eine stationäre Reihe ergibt. Hierfür gibt es einen speziellen Test. Diese Idee wird von Portfoliomanagern häufig verwendet.

Es gibt eine Reihe von Tests, die einen "Crash" garantieren.

 
SanSanych Fomenko:

Sie sollte nicht von Sigma zu Sigma gehen, sondern so lange bestehen, wie die Kointegration zwischen den Zeilen besteht.


PS. Von Kointegration spricht man, wenn man zwei nicht-stationäre Reihen auf eine besondere Art und Weise addiert und durch diese spezielle Addition eine stationäre Reihe erhält. Hierfür gibt es einen speziellen Test. Diese Idee wird von Portfoliomanagern häufig verwendet.

Viele Tests, die einen "Absturz" verhindern.


Das wusste ich nicht :) es gibt noch andere "Variationen des Themas"

und ohne die Tests können Sie alles im Prüfgerät sehen

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

Cointegration
Cointegration
  • Stimmen: 18
  • 2017.12.26
  • Maxim Dmitrievsky
  • www.mql5.com
Индикатор находит коэффициенты линейной регрессии для каждого из выбранных инструментов со всеми остальными, и выводит на график в виде стандартных отклонений. Сумма всех кривых...
 
Maxim Dmitrievsky:
Hier ein Random-Forest-Beispiel, bei dem Beispiele aus dem Einmaleins verwendet werden und dann ein trainiertes Beispiel gezählt wird (erzeugt Antworten im Protokoll)
und hier ist ein Beispiel für MLP https://www.mql5.com/ru/forum/8265/page2#comment_333746

Was für ein Geschenk. Danke, Max!!!

 
Maxim Dmitrievsky:

Das wusste ich nicht :) es gibt noch andere "Variationen des Themas"

und ohne Tests können Sie alles im Prüfgerät sehen

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

Ich habe keinen Hinweis darauf gefunden, dass Ihr Indikator etwas mit dem Wort "Kointegration" zu tun hat. Die orangefarbene Linie scheint eine eindeutig nicht-stationäre Reihe zu sein, während sie eigentlich stationär sein sollte, obwohl die Stichprobe klein ist, so dass die Kointegration nachgewiesen werden muss.
 
SanSanych Fomenko:
Ich habe keine Anhaltspunkte dafür gefunden, dass Ihr Indikator etwas mit dem Wort "Kointegration" zu tun hat. Ein Stück Grafik - die orangefarbene Linie sieht eindeutig nach einer nicht-stationären Reihe aus, und sie sollte stationär sein, obwohl die Stichprobe klein ist, so dass die Kointegration nachgewiesen werden muss.

Kointegration ist eine lineare Beziehung zwischen Zeitreihen, die eine stationäre Reihe haben, alle wahren

die Symbole müssen aufeinander abgestimmt sein... es kann eine lineare Regression für viele Symbole zählen, nicht nur für 2. Noch schlimmer ist, für 2 wird nicht ganz richtig zählen, weil neu zu berechnen lineare Regression 2 mal, potmou, dass ursprünglich gemacht multicurrency. Es gibt einen Bot, der die Ergebnisse in ein anderes Thema gießt. Ich habe einige Indizes, die explizit abhängig sind, aber mein Gewinn ist gering, etwa 100% p.a.

Es gibt die gleiche Scheiße, aber durch das nicht-lineare Modell, aber es ist auf Inkremente und nicht auf die nackten Preise basiert

P.s. Ich habe noch niemanden gesehen, der erfolgreich mit kointegrierten Instrumenten im Devisenhandel handelt (weil es fast keine gibt). Denn egal, wie man sich windet, wenn es keine grundlegende Abhängigkeit gibt, gibt es auch keine.
 
SanSanych Fomenko:
Ich habe keine Anhaltspunkte dafür gefunden, dass Ihr Indikator etwas mit dem Wort "Kointegration" zu tun hat. Ein Teil des Diagramms - die orangefarbene Linie - sieht offensichtlich nach einer nicht-stationären Reihe aus, obwohl sie stationär sein sollte, obwohl die Stichprobe klein ist, so dass die Kointegration nachgewiesen werden muss.

Hier ist eine Kointegration auf der ersten, und der Kanal wird gebildet, und auf der zweiten, wie diese sehr Kointegration zu einem Ende kommt...

Hier ist ein weiteres Beispiel dafür, wie die Kointegration zusammenbricht...
Dateien:
g7p4.png  47 kb
0zz22.PNG  56 kb
 
Maxim Dmitrievsky:

Kointegration ist eine lineare Beziehung zwischen Zeitreihen, die eine stationäre Reihe haben, alle wahren

die Symbole müssen aufeinander abgestimmt sein... es kann eine lineare Regression für viele Symbole zählen, nicht nur für 2. Noch schlimmer ist, für 2, wird nicht richtig zählen, weil neu zu berechnen lineare Regression 2 mal, potmou, dass ursprünglich gemacht multicurrency. Es gibt einen Bot, der die Ergebnisse in ein anderes Thema gießt. Ich habe einige Indizes, die explizit abhängig sind, aber mein Gewinn ist gering, etwa 100% p.a.

Es gibt den gleichen Mist, aber durch ein nicht-lineares Modell, aber es basiert auf Inkrementen und nicht auf Rohpreisen.

p.s. Ich habe noch keine einzige Person gesehen, die erfolgreich mit kointegrierten Instrumenten im Forex gehandelt hat (weil es fast keine gibt)

Es gibt keine seriösen Leute im Devisenhandel - es ist ein Markt für Penny-Wetten. Deshalb ist es kein Indikator.

Ich habe ein solches Modell, aber es ist durch die Streuung begrenzt, die variabel ist.

Vektorielle Autoregressionsmodelle sind auf anderen Märkten weit verbreitet, und es gibt zahlreiche fertige Instrumente. Granger blüht auf.