Der Autor - Seite 8

 
alexeymosc:

Vielen Dank, Herr Mensch.

Woher kommen die Signale "lang" und "kurz", haben Sie sie selbst in den Code geschrieben?

Ich verstehe Ihre Frage nicht: Was meinen Sie damit, dass ich es selbst geschrieben habe? Wie interpretieren Sie die Muster?
 
her.human:

Angenommen, wir finden dashäufigste Muster, was sagt uns dieses Muster? Was sollen wir als nächstes tun, kaufen oder verkaufen?

Ohne eine Unterteilung in Käufe und Verkäufe ist es unmöglich, die Gesamtzahl der Muster und damit den Durchschnitt zu berechnen.

In diesem Fall ist es für mich einfacher, in Code zu antworten.
Dateien:
 
hrenfx:
In diesem Fall ist es für mich einfacher, mit Code zu antworten.

Ein Schwanz ist nur eine Seitenansicht.

In meinem Fall werden nur zwei Arrays(arr_buy undarr_sell) verwendet, um alle Musterinformationen zu speichern,

die im Falle eines erzwungenen Neustarts des Expert Advisors leicht zu speichern sind, damit wir keine Statistiken verlieren.

In Ihrem Fall gibt es neben einem einzigen ArrayPatterns[index] mehrere statische Variablen, auf die Sie nicht verzichten können,

zum Beispielstatic int Element[];

static int PrevIndex = -1;

Anfangs habe ich auch angefangen, mit einer Reihe zu schreiben, aber dann habe ich es aufgegeben.

Was die Identifizierung von Mustern und das Entfernen eines Indikators betrifft: Ich habe Ihren Code noch nicht verstanden (ohne Kommentare ist er komplizierter).

PS. Ich habe es so verstanden, dass Sie keine Möglichkeit haben, das Fehlen eines Signals (kein Muster) zu berücksichtigen, es wird angenommen, dass es immer ein Signal gibt?

 
Es muss mindestens 3 Regionen des Marktvariantenraums (Kauf/Verkauf/unbestimmt) geben. Das heißt, es gibt zwei Bereiche, die eindeutig identifizierbar sind, und einen, zu dem unbestimmte Zustände gehören.

Idealerweise sollten es 4 sein: Kaufen/Verkaufen/Unentschieden/Unbekannt (vorher nicht gesehen), aber in der Praxis ist es nicht machbar, ein solches Schema umzusetzen, 3 sind ausreichend.

 
her.human:
Ich verstehe die Frage nicht, was Sie mit "Selbstverschreibung" meinen. Wie stellen Sie sich die Interpretation der Muster vor?
Ich habe den Code ehrlich gesagt nicht analysiert. Deshalb frage ich mit einfachen Worten: Welche Muster werden geschrieben, was sind sie, und woher kommen die binären Signale, aus der Geschichte? Das ist nicht klar.
 
her.human:
Der EA ist natürlich nur für den Prüfer geschrieben. Daher kann es nicht zu einem Verlust von Statistiken kommen, wenn der EA zu einem Neustart gezwungen wird.

Array static int Element[] wird nur aus Gründen der Zweckmäßigkeit so deklariert, um nicht bei jedem Funktionsaufruf Speicher dafür zu reservieren. D.h. das statische Element kann entfernt werden.

Die gesamte Beschreibung finden Sie hier. Deshalb gibt es insbesondere keine Kommentare im Code.

Das Signal ist in der Tat immer da (wie in Ihrem Fall). Die Umkehrung erfolgt jedoch nur an der Schwelle. Schließen im Moment der Signalunsicherheit, wie Sie es getan haben:

if(stat_sign<porog_clos && PositionGetDouble(POSITION_PROFIT)>0.0)
  trade.PositionClose(_Symbol); // выход из позиции
Ich habe es nicht getan.
 
joo:
Es müssen mindestens 3 Bereiche von Marktbedingungen (Kauf/Verkauf/unbestimmt) vorhanden sein. D.h. es gibt zwei Bereiche, die eindeutig identifizierbar sind, und einen, zu dem die undefinierten Zustände gehören.

Idealerweise sollten es 4 sein: Kaufen/Verkaufen/Undefiniert/Unbekannt (bisher ungesehen), aber in der Praxis ist es nicht praktikabel, ein solches Schema zu implementieren, 3 sind ausreichend.

Im obigen EA-Code wird das ungefähr so gemacht. Es gibt 4 Zustände, die in zwei eindimensionale Arrays geschrieben werden, die beliebig weiter interpretiert werden können.

1. kaufen=0, verkaufen=0, - keine Signale

2. kaufen=1, verkaufen=0, - kaufen

3. kaufen=0, verkaufen=1, - verkaufen

4. kaufen=1, verkaufen=1, - Ungewissheit, es ist möglich zu kaufen und zu verkaufen, oder auf dem Zaun zu bleiben und auf Gewissheit zu warten (was immer Sie wollen)

Wie ich sie selbst interpretieren soll, ist noch nicht klar.

 
alexeymosc:
Um ehrlich zu sein, habe ich den Code nicht geparst. Deshalb frage ich mit einfachen Worten: Welche Muster werden geschrieben, was sind sie, und woher kommen die binären Signale, aus der Geschichte? Das ist nicht klar.

Bei jedem neuen Takt werden 10 Bit aufgezeichnet (können auf Wunsch hinzugefügt werden). Dies ergibt 1024 verschiedene Kombinationen von Signalen.

Jedes Bit des Musters ist eines der einfachen (binären) Signale, aus denen man wählen kann (bisher gibt es 17 Arten, die erste, die mir einfiel).

Zum Beispiel:

  • Preis über dem Beutel - 1, Preis unter dem Beutel - 0;
  • high1>high2 - -1, high1<high2 - 0;
  • Zeit vor dem Mittagessen -1, Zeit nach dem Mittagessen - 0;

usw...

Natürlich ist die Zukunft aufgrund der Geschichte und der Frage, woher sie sonst kommen soll, unbekannt.

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 

Einige Auswahlen von Eingabeparametern:

Schlecht, natürlich, auch wenn 2,5 Jahre alt der TS ist ständig auf dem Markt. Aber das ist nicht der Punkt.

 
her.human:


  • Preis oberhalb des Stabes - 1, Preis unterhalb des Stabes - 0;
  • high1>high2 -1, high1<high2 - 0;
  • Zeit vor dem Mittagessen -1, Zeit nach dem Mittagessen - 0;

usw..


Das habe ich mich auch gefragt. Vielen Dank für die Erklärung. Es wird also a priori davon ausgegangen, dass, wenn der Preis über dem Handgelenk liegt, dies ein Hinweis auf eine Aufwärtsbewegung ist, usw.?