Bayes'sche Regression - Hat jemand einen EA mit diesem Algorithmus erstellt? - Seite 45

 
http://www.quantalgos.ru/?p=1898 vielleicht wird der Autor dieses Threads davon profitieren...
Предсказание чего угодно с использованием Python | QuantAlgos
  • 2016.03.12
  • www.quantalgos.ru
Небольшая статья с ресурса http://www.talaikis.com/ о построении простой стратегии, использующую наивный байесовский классификатор при создании процесса возврата к среднему. Весь код в статье приведен на языке Python. Это достаточно большая область исследований, но расскажем все очень кратко. Мы попытаемся найти взаимоотношение между...
 
Ilnur Khasanov:
http://www.quantalgos.ru/?p=1898 vielleicht wird der Autor dieses Themas davon profitieren...
Bei der Rückkehr zum Durchschnitt habe ich etwas Ähnliches gemacht, allerdings auf eine etwas andere Weise. Es funktioniert, aber man kann es nicht in der Realität einsetzen. Es gibt Probleme, deren Lösungen völlig unklar sind. Der größte Nachteil dieser Methode ist, dass Sie ständig beweisen müssen, dass Sie Recht haben und nicht der Markt. :)
 

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.

 
Yuri Evseenkov:

Unter Verwendung der oben vorgeschlagenen Polarkoordinaten-Methode wurde der MT4-PRNG in einen PRNG mit einer normalverteilten Zufallsvariablen umgewandelt.

Ein altes Fahrrad aus der Zeit von mql4.com.
 

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 Zecken nehmen? Sie können lernen, sie ohne höhere Mathematik vorherzusagen. Fragen Sie MQ wie.

Nehmen Sie echte Zecken, 10.000 Stück, und sehen Sie sich die Verteilung an. Zumindest wäre das praktisch.
 
Alexey Burnakov:
Warum überhaupt künstliche Tics nehmen? Sie können lernen, sie ohne höhere Mathematik vorherzusagen. Fragen Sie MQ wie.

Nehmen Sie echte Zecken, 10.000 Stück, und sehen Sie sich die Verteilung an. Zumindest wäre das praktisch.

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.

 
Yuri Evseenkov:

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.

Der Reihe nach. Ja, die Häkchen werden durch den Algorithmus im Prüfgerät erzeugt. Der Test an echten Zecken ist noch nicht freigegeben. Auf dieser Website gibt es einen Artikel darüber, wie diese Zecken erzeugt werden. Das sind gar keine echten Zecken.

Über die Binomialverteilung. Wenn Sie eine binäre Variable vorhersagen, erhalten Sie eine 2*2-Matrix, die die Erkennungsgenauigkeit anzeigt. Es handelt sich im Wesentlichen um eine gemeinsame Verteilung der beiden binären Variablen, der Zielvariablen und der simulierten Variablen.

Wenn Ihre Folge von Realisierungen der Zielvariablen i.i.d. unabhängig und identisch verteilt ist, eröffnet dies die Möglichkeit, viele Kriterien anzuwenden. Das Ergebnis des Werfens einer Münze ist genau das. Es handelt sich um einen Bernoulli-Prozess. Die Ereignisse sind also unabhängig voneinander. Wenn dies zutrifft, folgt Ihre Wahrscheinlichkeitsverteilung einer Binomialverteilung. Zum Beispiel hat die Anzahl der Erfolge eine Wahrscheinlichkeit, die ungefähr normal ist.

Ich schreibe weitschweifig, es ist spät. Was ich an Binomialverteilungen wirklich mag, ist die Anwendung des Chi-Quadrat-Kriteriums für eine quadratische Tabelle, das die Signifikanz zeigt, mit der sich Ihr Ergebnis von einer zufälligen Schätzung unterscheidet. Sie können dasselbe für multinomiale (nicht verbindliche quadratische) Tabellen tun. Auch für binäre Variablen gibt es viele Techniken des maschinellen Lernens.
 

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.

The Algorithm of Ticks' Generation within the Strategy Tester of the MetaTrader 5 Terminal
The Algorithm of Ticks' Generation within the Strategy Tester of the MetaTrader 5 Terminal
  • 2010.06.02
  • MetaQuotes Software Corp.
  • www.mql5.com
MetaTrader 5 allows us to simulate automatic trading, within an embedded strategy tester, by using Expert Advisors and the MQL5 language. This type of simulation is called testing of Expert Advisors, and can be implemented using multithreaded optimization, as well as simultaneously on a number of instruments. In order to provide a thorough testing, a generation of ticks based on the available minute history, needs to be performed. This article provides a detailed description of the algorithm, by which the ticks are generated for the historical testing in the MetaTrader 5 client terminal.