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

 
elibrarius:
Seid ihr Roboter?
Tag und Nacht arbeiten, ohne zu schlafen oder sich auszuruhen ))))

Zeitzonen... aber dennoch beeindruckend))))

 
elibrarius:

7 Punkte sind ausreichend.

Hier ist ein Histogramm des Gleichgewichts - neue Modelle in blau, alte Modelle in rot.

Alle Einstellungen sind identisch.

Relevanz des Prädiktors



Modelle nutzen die Zeit optimal. Es ist schwer zu sagen, ob das gut oder schlecht ist, aber es ist irgendwie schlecht, wenn ein Prädiktor aufgrund der Ähnlichkeit mit Analoga einen Vorteil erhält.

Rückruf

Präzision

Letztendlich gibt es einen Unterschied, keinen großen natürlich, aber immerhin.

Die Bilanz ist nicht schlecht.


 
Aleksey Vyazmikin:

Hier ist ein Histogramm des Gleichgewichts - neue Modelle in blau, alte Modelle in rot.

Alle Einstellungen sind identisch.

Relevanz des Prädiktors



Modelle nutzen die Zeit optimal. Es ist schwer zu sagen, ob das gut oder schlecht ist, aber es ist irgendwie schlecht, wenn ein Prädiktor einen Vorteil auf Kosten der Ähnlichkeit mit den Gegenstücken erhält.

Rückruf

Präzision

Letztendlich gibt es einen Unterschied, keinen großen natürlich, aber immerhin.

Es ist nicht schlecht.


Ist die Sinus- und Kosinuszeit also besser als nur Zahlen?
Füttern Sie die Minuten in der alten Version? Wenn nicht, geben Sie sie für einen angemessenen Vergleich ein. In der Version Sinus + Kosinus werden sie berücksichtigt. Entweder Sie entfernen die Minuten aus syn+cos, wenn es schneller geht.
 
elibrarius:
Ist die Sinus- und Cosinuszeit also besser als nur Zahlen?
Füttern Sie die Minuten in der alten Version? Wenn nicht, geben Sie sie ein, um einen angemessenen Vergleich zu erhalten. Bei der Sinus-Cosinus-Version sind sie berücksichtigt. Oder nehmen Sie die Minuten aus syn+cos heraus, wenn es schneller geht.

Die von mir angegebene Metrik sieht schlechter aus. Es ist wahrscheinlicher, dass Reason einen zufälligen Satz von Prädiktoren trifft, um einen geteilten Prädiktorenbaum in Verbindung mit der Zeit zu erstellen.

Ja, ich habe in meiner alten Version keine Minuten verwendet.

 
Aleksey Vyazmikin:

Die von mir angegebene Metrik sieht schlechter aus. Der Grund dafür ist die hohe Wahrscheinlichkeit, auf eine zufällige Menge von Prädiktoren zu treffen , um einen Split-Tree des mit der Zeit verbundenen Prädiktors zu erstellen.


Haben Sie einen Katzenbrauch gemacht? Es sollte keine zufällige Auswahl von Prädiktoren geben. Boosts verwenden alle Prädiktoren, aber flache Bäume.

In einem Zufallsforst, ja. Sie wird z . B. festgelegt durch

max_features{"auto", "sqrt", "log2"}, int oder float, default="auto "

Die Anzahl der Merkmale, die bei der Suche nach dem besten Split zu berücksichtigen sind:


Aleksey Vyazmikin:

Ja, ich habe in meiner alten Version keine Minuten verwendet.

Vielleicht haben sie das Ergebnis verschlechtert? Versuchen Sie in der neuen Version, sie zu entfernen.

Das war's. Es sollte eine vollständige Analogie zu Ihrer alten Version sein.

if(nameInd[nInd]=="Hour")        {CopyTime        (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.hour)*360.0/24.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}

if(nameInd[nInd]=="WeekDay")     {CopyTime        (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.day_of_week)*360.0/7.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}


 
elibrarius:

Haben Sie den Katzenbrauch gemacht? Es sollte keine zufällige Auswahl von Prädiktoren geben. Boosts verwenden alle Prädiktoren, aber flache Bäume.

In einem Zufallsforst, ja. Eingestellt durch z .B .


Vielleicht haben sie das Ergebnis verschlechtert? Versuchen Sie in der neuen Version, sie zu entfernen.

Dort sollte es eine vollständige Analogie zu Ihrer alten Version sein.

if(nameInd[nInd]=="Hour")        {CopyTime        (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.hour)*360.0/24.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}

if(nameInd[nInd]=="WeekDay")     {CopyTime        (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.day_of_week)*360.0/7.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}


Was die Zufälligkeit betrifft, so gibt es genug davon.

Warst du nicht überrascht, dass ich Sinus und Kosinus mal getrennt habe, während ich jetzt verstehe, dass es einen geben muss, aber Sinus und Kosinus verwendet werden?

Daher die Frage: Was ist buf, und warum nehmen wir einen Kosinus, wenn er gleich Null ist?

 
Aleksey Vyazmikin:

Was die Zufälligkeit betrifft, so gibt es davon reichlich.

Warst du nicht überrascht, dass ich Sinus und Kosinus getrennt habe, und so wie ich es jetzt verstehe, sollte es nur einen geben, aber Sinus und Kosinus werden verwendet?

Daher die Frage: Was ist buf, und warum nehmen wir den Kosinus, wenn er gleich Null ist?

Der buf ist die Nummer des Puffers.
Es gibt Indikatoren mit 1 Puffer, es gibt mehr als 2.

Ich durchlaufe die Anzahl der Puffer in meiner Schleife, wenn ich Spalten für den Trainingssatz erstelle.

Sie müssen sowohl den Sinus als auch den Kosinus eingeben, nicht nur einen. Siehe https://megaobuchalka.ru/9/5905.html für weitere Informationen.

Numerische Daten scheinen für die Kodierung unnötig zu sein. In einigen Fällen ist es jedoch sinnvoll, auch numerische Daten zu kodieren [22]. Bei der Kodierung numerischer Daten müssen die Aussagekraft der Daten, die Lage der Werte im Wertebereich und die Genauigkeit der Datenmessung berücksichtigt werden. Dies wird durch Beispiele veranschaulicht. Durch die Kodierung kann zum Beispiel die Aussagekraft der Daten berücksichtigt werden. Handelt es sich bei der Eingabe in ein Netz um einen Winkel zwischen zwei Richtungen, z. B. die Windrichtung, so ist es niemals sinnvoll, den Winkel (in Grad oder Bogenmaß) in das Netz einzugeben. Durch eine solche Eingabe würde das Netz "lernen", dass 0 Grad und 360 Grad das Gleiche sind. Es ist sinnvoller, den Sinus und Kosinus dieses Winkels als Eingabe zu verwenden. Die Anzahl der Eingangsnetzsignale nimmt zu, aber enge Eingangswerte werden durch enge Eingangssignale kodiert.

Виды трансформации данных — Мегаобучалка
Виды трансформации данных — Мегаобучалка
  • megaobuchalka
  • megaobuchalka.ru
Трансформация данных — это преобразование данных к определенному представлению, формату или виду, оптимальному с точки зрения конкретного метода анализа [6]. Для разных задач анализа могут потребоваться разные методы трансформации. Типичными средствами трансформации данных являются следующие. Преобразование временны́х данных . Оптимизация...
 
elibrarius:

buf Puffernummer.
Für die Zeit gibt es 2. es gibt Indikatoren mit 1 Puffer, es gibt mehr als 2.

Ich durchlaufe die Anzahl der Puffer, wenn ich die Spalten für den Trainingssatz zusammenstelle.

Sie müssen sowohl den Sinus als auch den Kosinus eingeben, nicht nur einen. Eine Erklärung, warum - hier https://megaobuchalka.ru/9/5905.html

Ich habe es also ursprünglich richtig gemacht - ich kann mich nur nicht mehr daran erinnern, was ich gemacht habe...

   double tmp[4];
   int nInd=0;
   MqlDateTime dts;
   double pi=3.1415926535897932384626433832795;
   for(int buf=0; buf<2; buf++)
   {
      TimeToStruct(iTime(Symbol(),PERIOD_CURRENT,0),dts);
      tmp[buf]=(double)(dts.hour*60+dts.min)*360.0/1440.0;
      //tmp[buf]=(double)(dts.hour*60+dts.min)*360.0/24.0;
      tmp[buf]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));

      TimeToStruct(iTime(Symbol(),PERIOD_CURRENT,0),dts);
      tmp[buf+2]=(double)(dts.day_of_week*1440+dts.hour*60+dts.min)*360.0/10080.0;
      //tmp[buf+2]=(double)dts.day_of_week*360.0/7.0;
      tmp[buf+2]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));
   }
 
Können wir nicht mit einem Eingang auskommen statt mit 4?
Nur die Anzahl der Minuten ab Montag 0:00 =
dts.day_of_week*1440+dts.hour*60+dts.min
Das ist aber keine gute Idee. Um z. B. die ersten 10 Minuten jeder Stunde zu erreichen, müssten Sie eine Menge Splits machen.
Wahrscheinlich ist es besser wie bei Ihnen - nur Tage, Stunden. Und vielleicht Minuten.
 
elibrarius:
Können wir nicht einfach mit einem Eintrag auskommen, anstatt mit 4?
Nur die Anzahl der Minuten von Montag 0:00 = Obwohl ist eine schlechte Idee. Um z. B. die ersten 10 Minuten jeder Stunde zu erreichen, müssten Sie eine Menge Splits machen.
Wahrscheinlich ist es besser wie bei Ihnen - nur Tage, Stunden. Und vielleicht Minuten.

Habe bereits mit dem Training begonnen, ohne Protokoll - mal sehen.

Ich verwende immer noch 1/4-Bar-Zeit - Stunden, 4 Stunden, Tage.