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

 
Vladimir Perervenko #:

Ich erkläre es an meinen Fingern. In ONNX.Price.Prediction.mq5 erhalten Sie 10 OHLC. Dann bestimmen Sie aus diesen Daten Mittelwert und Standardabweichung und normalisieren diese 10 Werte mit ihnen. Das ist aber nicht richtig.

Für diese neuen Daten sollten Sie Mittelwert und Sd aus dem Trainingssatz verwenden. Das heißt, im vorherigen Skript. Ist das klar?

Ja, natürlich. Das ist kein Problem. Dieses Modell wurde sehr schnell erstellt. Nur als Beispiel.

Wir mussten die Korrektheit der Inferenz in MQL5 sehr schnell überprüfen.

Und natürlich haben wir die Wirksamkeit der Vorhersage anhand der aktuellen Daten überprüft. Etwa 52 Prozent. Ich habe am Freitag ein Verifikationsskript mit ausführlichen Kommentaren zu den technischen Details geschrieben. Rashid hat auf der Grundlage dieses Modells einen Expert Advisor geschrieben, der im Testprogramm läuft. Offenbar ist er noch nicht veröffentlicht worden.

 
Vladimir Perervenko #:

Das ist mir natürlich klar. Aber verstehen es die Leute, die das Beispiel verwenden?

52 Prozent Effizienz. Das sollten sie verstehen.

MAE=0,0005

 
Lassen Sie mich die Situation ein wenig erläutern. Es ist jedem hier klar, dass die Beispiele rein technischer Natur sind. Aber Menschen, die sich gerade erst mit MT vertraut machen und aus der Datenwissenschaft kommen, könnten einen unangenehmen Eindruck haben, wenn sie dieses Beispiel sehen. Deshalb schlägtVladimir Perervenko vor, alle Normalisierungen anhand von Trainingsdaten zu berechnen, damit die Informationen nicht aus der Teststichprobe entweichen.
 
Aleksey Nikolayev #:

Dieses Problem wird durch die Verwendung einer geeigneten Verlustfunktion beim Training von MO-Modellen gelöst. Es gibt zwei Probleme, die damit verbunden sind. Das erste ist technischer Natur - die Standard-Verlustfunktionen in den MO-Paketen haben nur indirekt mit der Gewinnmaximierung zu tun, was dazu führt, dass man eigene Funktionen erstellen muss. Dies ist ziemlich schwierig - man muss die MO-Pakete auf Code-Ebene gut verstehen. Wenn dieses Problem gelöst ist, kann das zweite, mathematische Problem auftreten, wenn die benutzerdefinierte Verlustfunktion für das Training des Modells nicht geeignet ist.

Wenn jemand ein solch schwieriges Problem löst, ist es unwahrscheinlich, dass er die Lösung mit anderen teilt.

Offensichtlich sind Funktionen über Verlustfunktionen lesenswert. Wenn ich richtig verstehe, stellt sich heraus, zum Beispiel in einem Markt, wo man nur die Verlustfunktion kaufen kann:

Summe der Differenz zwischen dem Kauf- und dem Verkaufspreis, für Fälle, in denen: "Ankaufspreis" - "Verkaufspreis" < 0.

In diesem Fall erhält man eine Summe mit einem negativen Wert, d.h. sie sollte gegen 0 oder zum Maximum tendieren. Damit sie vor der Summe der Differenzen zum Minimum tendiert, müssen wir ein Minuszeichen einfügen.

Ich habe nicht damit gerechnet, dass jemand, der ein so schwieriges Problem gelöst hat, die Lösung nicht mit anderen teilen wird. Ich möchte nur verstehen, wie man den Gewinn maximiert, oder zumindest ein Beispiel für ein Modell sehen (es spielt keine Rolle, ob es profitabel ist oder nicht, ich möchte nur den allgemeinen Rahmen verstehen).

Und so denke ich, dass benutzerdefinierte Verlustfunktionen im Allgemeinen schlecht für das Training eines Modells sind, da dies nicht der Hauptteil des Modells ist.

 
Maxim Dmitrievsky #:
Optimieren Sie Ihre Strategie (wenn Sie zu faul sind, einen weiteren Aufschlag zu machen) nach dem Kriterium des maximalen Gewinns, und trainieren Sie dann mit diesem TS. Oder nehmen Sie irgendeinen profitablen TS vom Markt. Das gleiche Training mit einem Lehrer.

Wenn Sie daran interessiert sind, einen TS nur auf der Basis von NS abzuleiten, kann ich Ihnen eine Variante aus meinem letzten Artikel anbieten. Sie können es auf ähnliche Weise tun. Ich habe mich anfangs gefragt, wie man so etwas machen kann. Exklusiv.

Ich würde nicht sagen, dass ich faul bin, irgendwelche anderen Markups zu machen, ich probiere verschiedene Varianten aus, und da ich kein Senor in maschinellem Lernen bin, versuche ich, wenn mir eine Idee in den Sinn kommt, zumindest einige Varianten von Beispielen mit Versuchen zu finden, das Ergebnis zu erreichen.

Als ich versuchte, eine parametrische Variante der Lösung mit ihren eigenen Werten der Indikatoren zu machen, aber es stellte sich heraus, dass es so viele Varianten des Satzes von Werten der Indikatoren, dass mit der aktuellen Rechenleistung Auswahl der Parameter wird fast 10 Jahre durchgeführt werden)

Ich war überrascht, als ich die Formulierung "jeden profitablen TS vom Markt nehmen" las. Ich habe eine solche Option nicht einmal in Erwägung gezogen, da ich dachte, es gäbe sie nicht.

 
mytarmailS #:
Ich habe schon so oft geteilt, dass ich es irgendwann satt hatte.....

Die Leute fangen an, darüber nachzudenken und zu reden, was ich vor Jahren diskutiert habe, aber niemand versteht es.

Nicht jeder war vor Jahren mit dem maschinellen Lernen vertraut. Wenn man Ihre Beiträge noch einmal liest, sollte man die Diskussionen in demselben Thread/Zweig finden?

Offenbar lohnt es sich, alle 3000 Seiten des Threads zu lesen, solange er noch wächst.

 
Elvin Nasirov #:
Offenbar sollte man versuchen, alle 3000 Seiten des Themas zu verstehen, bevor es wächst.

Es ist besser, die Artikel von Vladimir Perervenko und Maxim Dmitrievsky zu verstehen. Sie werden Ihre Zeit nützlicher verbringen. Das Forum besteht hauptsächlich aus Wasser.

Vladimir Perervenko
Vladimir Perervenko
  • www.mql5.com
Профиль трейдера
 
Forester #:

Verstehen Sie die Artikel von Vladimir Perervenko und Maxim Dmitrievsky besser. Sie werden Ihre Zeit sinnvoller verbringen. Das Forum besteht hauptsächlich aus Wasser.

Ich danke Ihnen!

 
Elvin Nasirov #:

Nicht jeder war vor Jahren mit dem maschinellen Lernen vertraut. Wenn man Ihre Beiträge noch einmal liest, sollte man die Diskussionen im gleichen Thread/Zweig finden?

Offenbar lohnt sich der Versuch, alle 3000 Seiten des Threads zu durchschauen, solange er noch wächst.

Ihr Problem ist ein Optimierungsproblem, die Suche nach unbekannten Parametern

Hier ist der EINZIGE Artikel, den Sie brauchen, um https://www.mql5.com/ru/articles/2225 zu studieren .


Wenn Sie AMO lernen wollen, um den Gewinn zu maximieren und den Drawdown zu minimieren:


müssen Sie

1) eine Fitnessfunktion erstellen, eine Funktion, die Gewinne und Verluste aus Handelssignalen zählt.

2) einen beliebigen AMO-Algorithmus, der Signale für den Handel generiert, für die Fitnessfunktion (S.1)

3) einen beliebigen Optimierungsalgorithmus (genetisch, Partikelschwarm, Churn), der Signale als Ziele für AMO erzeugt (Punkt 2).


Der Algorithmus sieht folgendermaßen aus

1) AO erstellt ein Ziel für AMO

2) AMO lernt auf diese Zielvorgabe

3) AMO erstellt eine Prognose von Handelssignalen

4) die Handelssignale werden von FF ausgewertet und ergeben ein Ergebnis

5) das Ergebnis von FF wird von AO ausgewertet und weiter maximiert/minimiert und so weiter im Kreis, bis man ein akzeptables Ergebnis erhält.


==========

AO - Optimierungsalgorithmus

AMO - Algorithmus für maschinelles Lernen

FF - Fitnessfunktion

=========


ps. Wenn Sie mit Neuronka und nicht mit einem AMO arbeiten möchten, können Sie die Gewichte mit AO-Tools ändern, ohne das Targeting zu lernen.

Самооптимизация экспертов: Эволюционные и генетические алгоритмы
Самооптимизация экспертов: Эволюционные и генетические алгоритмы
  • www.mql5.com
В статье будут рассмотрены основные принципы, заложенные в эволюционных алгоритмах, их разновидности и особенности. На примере простого эксперта с помощью экспериментов покажем, что может дать нашей торговой системе использование оптимизации. Рассмотрим программные пакеты, реализующие генетические, эволюционные и другие виды оптимизации и приведем примеры применения при оптимизации набора предикторов и оптимизации параметров торговой системы.
 
mytarmailS #:

Ihr Problem ist ein Optimierungsproblem, bei dem nach unbekannten Parametern gesucht wird.

Hier ist der EINZIGE Artikel, den Sie brauchen, um https://www.mql5.com/ru/articles/2225 zu studieren.


wenn Sie dem Netzwerk beibringen wollen, den Gewinn zu maximieren und den Drawdown zu minimieren:


Sie brauchen

1) eine Fitnessfunktion erstellen, eine Funktion, die Gewinne und Verluste aus Handelssignalen zählt.

2) einen beliebigen MO-Algorithmus, der Signale für den Handel erzeugt, für die Fitnessfunktion (S.1)

3) ein beliebiger Optimierungsalgorithmus (genetisch, Partikelschwarm, Churn), der Signale als Ziele für AMO erzeugt (S.2).


Algorithmus wie dieser

1) AO erzeugt ein Ziel für AMO



AO - Optimierungsalgorithmus

AMO - Algorithmus für maschinelles Lernen

FF - Fitnessfunktion

Können Sie mir ein Beispiel für einen AO nennen? Ich hatte den Eindruck, dass die Suche nach einem Lehrer Stückwerk ist und sich für eine Automatisierung anbietet.