Bayes'sche Regression - Hat jemand einen EA mit diesem Algorithmus erstellt? - Seite 45
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
http://www.quantalgos.ru/?p=1898 vielleicht wird der Autor dieses Themas davon profitieren...
Pseudozufallszahlengenerator. (PRNG)
Unter Verwendung der oben vorgeschlagenen Methode der Polarkoordinaten habe ich МТ4 PRNG in PRNG mit einem normalverteilten Zufallswert umgewandelt.
Um die Korrektheit des Codes visuell zu überprüfen, habe ich die Ergebnisse auf das Preisdiagramm projiziert.
Dies ist die Anzeige des Basis-PRNG nach 1000 Aufrufen. Die Flächen der Histogramm-Rechtecke sind proportional zu der Anzahl der generierten Zufallszahlen, die in diesen Bereich der vertikalen Skala passen.
Die Umrechnung dieser Tausenden von Treffern anhand der Formeln der Methode ergibt nun
eine völlig ausreichende Glocke.
Unter Verwendung der oben vorgeschlagenen Polarkoordinaten-Methode wurde der MT4-PRNG in einen PRNG mit einer normalverteilten Zufallsvariablen umgewandelt.
Zu einem Versuch, die Bayes'sche Formel anzuwenden. Nochmals.
Aufgabe. Bestimmen Sie mit Hilfe des Satzes von Bayes, welcher Wert eines noch nicht eingetroffenen Häkchens am wahrscheinlichsten ist.
Gegeben. Zeitreihe x,y.
y=ax+b Eine Linie vom letzten Tick in die Zukunft.
P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y); (1) Bayes-Formel.
P(a,b|x,y) ist die Wahrscheinlichkeit, dass die Koeffizienten a und b den x- und y-Koordinaten eines zukünftigen Ticks entsprechen.
Wir müssen solche a und b finden, dass diese Wahrscheinlichkeit (richtiger gesagtWahrscheinlichkeitsmaß) maximal ist.
P(x,y|a,b) - nehmen wir das reale Histogramm der Tick-Verteilung nach Preisniveau als Wahrscheinlichkeitsfunktion. Die Funktion wird durch ein zweidimensionales Array (Matrix) definiert: Preisspanne - Wahrscheinlichkeit, prozentuales Verhältnis der in diese Spanne fallenden Ticks zur Gesamtzahl der Ticks.
P(b) - die Normalverteilung der Inkremente wird als A-priori-Wahrscheinlichkeit b angenommen. PRNG mit dem normalverteilten Wert wird verwendet.
Der P(a)-Koeffizient a bestimmt die Steigung der Geraden und das Vorzeichen des vorhergesagten Zuwachses. Bisher denke ich daran, den Code für die lineare Regression zu verwenden, den ich bereits gepostet habe. D.h. man nimmt die Wahrscheinlichkeit des dort gefundenen Koeffizienten a als Eins an. Und in (1) ersetzen Sie die Wahrscheinlichkeit P(a), die unter Berücksichtigung der Differenz zwischen diesem a und dem für das gegebene y berechneten berechnet wurde.
Vielleicht haben Sie einige Gedanken darüber, wie sich das Vorzeichen der Inkremente jedes Ticks verhält?
Es besteht definitiv keine Notwendigkeit, Häkchen in die Formel zu setzen. Jeder kann diese Zecken auf FORTS generieren, was jeden Tag geschieht.
Das Problem liegt nicht in den mathematischen Methoden. Sondern in der Angemessenheit der Auswahl der Daten, auf die man sich bezieht.
Warum überhaupt künstliche Tics nehmen? Sie können lernen, sie ohne höhere Mathematik vorherzusagen. Fragen Sie MQ wie.
Die Likelihood-Funktion P(x,y|a,b) in (1) ist also die reale Verteilung der realen Ticks (Tick-Volumen). Das ist äußerst selten normal. Und P(a) und P(b) sind Korrekturwahrscheinlichkeiten, die nach den Gesetzen als A-priori-Wahrscheinlichkeiten betrachtet werden.
Was soll ich MQ fragen? Das Prinzip der Modellierung von Ticks im Strategie-Tester? Ja, es muss einen Grundsatz geben. Wenn wir das wissen, können wir vielleicht "Grale" für die Tester schaffen. Aber ich kann es nicht im Testmodus entwickeln, da ich weder über eine Tick-Historie verfüge, noch Übung im Umgang damit habe. Alles wird in Echtzeit ablaufen.
Ich bin an Ihren Worten interessiert:
"Ich mache in meinen Experimenten überhaupt keine Regression und Preiswerte (oder deren Transformationen), ich sage das Vorzeichen voraus, aber man könnte sagen, dass dies auch Teil der Preisinformation ist.
Meine Fehler sehen folgendermaßen aus:
0 1
0 0,58 0,42
1 0,43 0,57
Oder ungefähr wie ursprünglich:
1 - richtig, 0 - fehlerhaft: 1, 1, 1, 0, 0, 0, 1 , 1, 1, 0, 1
Und die sich daraus ergebende Wahrscheinlichkeitsverteilung sollte so weit wie möglich von 0,5 / 0,5 abweichen. Wenn wir eine gegenseitige Untrennbarkeit solcher Ergebnisse erhalten, kommen wir zur Binomialverteilung, für die es viele, viele Formeln und statistische Tests gibt", Ende des Zitats.
Was bedeutet die Binomialverteilung bei der Vorhersage eines Vorzeichens? Worin besteht die gegenseitige Unabhängigkeit der Ergebnisse? Ich danke Ihnen.
Die Likelihood-Funktion P(x,y|a,b) in (1) ist also die reale Verteilung der realen Ticks (Tickvolumina). Das ist sehr selten normal. Und P(a) und P(b) sind Korrekturwahrscheinlichkeiten, die nach den Gesetzen als A-priori-Wahrscheinlichkeiten betrachtet werden.
Was soll ich MQ fragen? Das Prinzip der Modellierung von Ticks im Strategietester? Ja, es muss einen Grundsatz geben. Wenn wir das wissen, können wir vielleicht "Grale" für die Tester schaffen. Aber ich kann es nicht im Testmodus entwickeln, da ich weder über eine Tick-Historie verfüge, noch Übung im Umgang damit habe. Alles wird in Echtzeit ablaufen.
Ich bin an Ihren Worten interessiert:
"Ich mache in meinen Experimenten überhaupt keine Regression und Preiswerte (oder deren Transformationen), ich sage das Vorzeichen voraus, aber man könnte sagen, dass dies auch Teil der Preisinformation ist.
Meine Fehler sehen folgendermaßen aus:
0 1
0 0,58 0,42
1 0,43 0,57
Oder ungefähr wie ursprünglich:
1 - richtig, 0 - fehlerhaft: 1, 1, 1, 0, 0, 0, 1 , 1, 1, 0, 1
Und die sich daraus ergebende Wahrscheinlichkeitsverteilung sollte so weit wie möglich von 0,5 / 0,5 abweichen. Wenn wir die gegenseitige Unabhängigkeit solcher Ergebnisse erhalten, kommen wir zur Binomialverteilung, für die es viele, viele Formeln und statistische Tests gibt" (Ende des Zitats).
Gilt bei der Vorhersage eines Vorzeichens wirklich die Binomialverteilung? Worin besteht die gegenseitige Unabhängigkeit der Ergebnisse? Ich danke Ihnen.
Die Verwendung von Ticks für die Vorhersage ist meiner Meinung nach gefährlich, und das Modell sollte für jeden Broker separat eingerichtet werden.
Wenn wir die Ticks aus dem Strategietester nehmen, gibt es einen gravierenden Unterschied zu den realen Ticks, da die Ticks im Tester durch eine Vorlage aus den Ohlc-Werten der Minutenbalken generiert werden(https://www.mql5.com/en/articles/75). Aus diesem Grund testet niemand Scalper, sondern setzt sie sofort auf ein echtes Konto und optimiert sie auf diesem Weg.
Über echte Ticks - sie können von Broker zu Broker sehr unterschiedlich sein. Zum Beispiel in diesem Thread https://www.mql5.com/en/forum/64228/page2#comment_1960403 (https://c.mql5.com/3/78/tbd.png ) ist ein Screenshot beigefügt, dies ist die Verteilung der Tick-Inkremente über den gleichen Zeitrahmen bei zwei verschiedenen Brokern. Ich weiß nicht mehr, wie lange die Pause dauerte, irgendetwas zwischen einem Tag und einer Woche. Im Allgemeinen fallen sie zusammen, aber einer von ihnen hat zweimal mehr Ticks ohne Preisänderung. Wenn Sie mehr als zehn Broker vergleichen, kann es meiner Meinung nach große Unterschiede geben, insbesondere bei den "Überraschungskerzen".
Alternativ können alle Häkchen ohne Preisänderung entfernt werden. Dann gibt es eine Nuance, dass das Ereignis OnTick() im EA übersprungen werden kann und ein neuer Preis mit dem vorherigen an das Terminal gesendet wird. D.h. nicht 1,23456 -> 1,23490 -> 1,23410, sondern einfach 1,23456 -> 1,23410. Und statt zwei Änderungen erhält Ihr Modell nur eine.
Es wird sich herausstellen, dass das Zeitintervall zwischen zwei benachbarten Ticks nicht definiert ist und es Datenlücken geben wird, was ich für schlecht halte.
Es ist immer noch einen Versuch wert, Sie müssen MT4 und das Programm Tickstory Lite verwenden (es gibt eine kostenlose Version), um echte Ticks in den Tester einzufügen (sie werden vom Broker Dukascopy übernommen). Es sollte nur das MT4-Terminal mit einem Build unter 950 verwendet werden, da sonst die kostenlose Version von tickstory Testdaten mit Nullspread erstellt.
Ich habe etwas mit Ticks ausprobiert, z. B. einen Durchschnitt zu finden und zu kaufen und zu verkaufen, wenn der aktuelle Preis stark vom Durchschnitt abweicht. Wenn es einen Gewinn gab, dann hat der Spread alles aufgefressen und ich bin zu größeren Zeitrahmen übergegangen.