Wie funktioniert der Algorithmus zur Erkennung von MA-Futtermittelclustern? - Seite 2

 
Dmitry Fedoseev:

Ich bin zu faul, noch mehr zu erfinden. Es gibt einige Hinweise darauf, dass das Problem im Prinzip lösbar ist.

Alle diese Feeds sind nur eine Heatmap der früheren Preise. Seitenansicht 😉 .

Und anders als der Durchschnitt kann die Temperaturkarte in die Zukunft verlängert werden. Und die Stromausfälle, die sind leicht zu finden
 
Maxim Kuznetsov:
Alle diese Feeds sind nur eine Heatmap der alten Preise. Seitenansicht.

Und anders als der Durchschnitt kann die Temperaturkarte in die Zukunft verlängert werden. Und Stromausfälle sind leicht zu finden

Ja, das ist sie!

Es ist einfach, wenn man vorgefertigte Stereotypen hat.

Und sie herauszufinden ist keine leichte Aufgabe...

Vielen Dank für die Empfehlung!
 
Mikhail Toptunov:

Ja, richtig!

Es ist einfach, wenn man vorgefertigte Stereotypen hat.

Es ist nicht einfach, die Stereotypen herauszuarbeiten...

Vielen Dank für den Hinweis!

Ein grober Algorithmus zur Berechnung einer Heatmap (z. B. für 100 bar):

für alle Schließen von 1 bis 100 :

Close[N]=X addiert zur Heatmap die Summe der Zeile heatmap[Resolution(X)]+={X/N} + {X/(N+1)}+{X/(N+2)}... bis zu 100.
Was in geschweiften Klammern steht, sind die "Komponenten" der Durchschnittswerte, die gerade hervorgehoben wurden.
Auflösung(X) - "Auflösung", z. B. 10 Punkte Round((X-MinimalX)/Point/10)

erhalten Sie einen Vektor, in dem Sie lokale Maxima finden müssen.

Dieser Vektor ist praktisch ein vertikales Profil der Preise

 

Jetzt, wo Sie angefangen haben...

Die direkte Kurvenhäufung kann einfach und schnell erkannt werden.

Alg.: Suche nach einer maximalen Ansammlung von Punkten innerhalb von D auf einer Achse. (wahrscheinlich einfacher zu zeichnen, aber ich bin kein Künstler)

für jeden X-Punkt auf der Sekundärachse +1 auf X+D und -1 auf X-D markieren.

Laufen Sie dann entlang der zusätzlichen Achse und zählen Sie die kumulierte Summe der Noten. Gleichzeitig merken Sie sich das Maximum, seine Dauer und Position.

ALLE.

Die Option Vertikalprofil oder Temperaturkarte ist jedoch besser, wenn auch langwierig und ressourcenaufwendig.

weil 1) es direkt von den Preisen gezählt wird 2) es eine Matrixverbindung zum SMA hat 3) es mit dem Stack verbunden ist 4) es variabel ist - man kann mit Fades und Blur "spielen" und etwas Eigenes finden

 
Mikhail Toptunov:

Ich habe versucht, die MA-Wiederholungen nach Preis und nach Zeitraum neu zu berechnen.

Ich habe Folgendes getan:

- den Zeitpunkt jedes MA-Übergangs von einer Richtung zur anderen bestimmt - Signal1

- nach Empfang der Daten die Anzahl der Wiederholungen von Signal1 in einem Balken zählen

aber das Ergebnis erwies sich als zu verrauscht


dann habe ich festgestellt, dass der MA des aktuellen Balkens eine abnehmende Periode auf dem nächsten Balken hat, d.h. das Bündel wurde um eine Periode nach unten verschoben

Ich habe begonnen, die Daten in einer Kette mit dem Signal1 zu verbinden, und in den erhaltenen Daten habe ich den Zeitpunkt des Übergangs gefunden


Aber es funktioniert nicht immer, es macht Geräusche oder wird nicht angezeigt.



Verdammt, das Muster funktioniert nicht, das obere Fenster ist leer.


Im Idealfall ist die Aufgabe, die Werte mit einer blauen Markierung zu versehen

Maxim hat es Ihnen richtig gesagt

Sie nehmen Ihre MA mit der maximalen Periode, Sie nehmen die minimale Periode

und das war's, hier sind sie - die Feeds.

Das Muster funktioniert hervorragend, alles ist gut sichtbar und verständlich:


 

Eine weitere Option

1

Dateien:
22.mq5  4 kb
 

Und noch eins

Dateien:
23.mq5  6 kb
 
Sie könnten eine Woche oder einen Monat bleiben...
 
Maxim Kuznetsov:

Algorithmus zur ungefähren Berechnung der Wärmekarte (z. B. für 100 bar):

für alle Schließen von 1 bis 100 :

Close[N]=X addiert zur Heatmap die Summe der Zeilen heatmap[Resolution(X)]+={X/N} + {X/(N+1)}+{X/(N+2)}... bis zu 100.
Was in geschweiften Klammern steht, sind die "Komponenten" der Durchschnittswerte, die gerade hervorgehoben wurden.
Auflösung(X) - "Auflösung", z. B. 10 Punkte Round((X-MinimalX)/Point/10)

erhalten Sie einen Vektor, in dem Sie lokale Maxima finden müssen.

Dieser Vektor ist in Wirklichkeit ein vertikales Preisprofil.

Ich versuche, die Formel zu integrieren... Ich bin in der Regel knapp bei Kasse...

#define           Pmax 100   //размер массива по периоду

void ...
{
   for(int p=5; p<=Pmax; p++) // отбор по периодам
      for(int b=rates_total-Pmax; b<rates_total; b++)
        {
         double pr=sm.d[p-1].m[b]; // массив значений цен МА        p-период, b-бар        
        }
}

Ich habe den Wert der einzelnen Perioden für jeden Balken - pr

Was sollte ich am Ende der Berechnung erhalten?

- Ein vertikaler Vektor (Array von Werten) für jeden Balken,

wenn ich Werte für den ersten Balken berechne

heatmap[Round((pr-MininalX)/Point/10)]+=pr;

MininalX - Mindestpreiswert von 100 MA-Perioden

Ich weiß, dass ich Unsinn rede, also seien Sie bitte gnädig!)

 
Mikhail Toptunov:

Ich versuche, die Formel zu integrieren... Ich bin wirklich, wirklich eng...

Ich habe den Wert der einzelnen Perioden für jeden Balken - pr

Was sollte ich am Ende der Berechnung erhalten?

- Ein vertikaler Vektor (Array von Werten) für jeden Balken,

wenn ich Werte für den ersten Balken berechne

MininalX - Mindestpreiswert von 100 MA-Perioden

Ich weiß, dass ich Unsinn rede, also seien Sie bitte gnädig).

Ja, Sie sollten einen "vertikalen Vektor" von Summen erhalten. Jedes Element des Vektors ist z.B. für 10 Pips verantwortlich.

Also für eine Bar:

1. Lassen wir die Preise für Pmax-Balken laufen, um Max, Min und daraus die Größe des Vektors zu bestimmen.

2. Überprüfen Sie noch einmal die Preise für jeden Preis:

2.1 Bestimmen, welches Element des Vektors hinzugefügt werden soll

2.2 Bestimmen Sie, wie viel Sie hinzufügen müssen. Bei einem Offset von N addieren wir PRICE * (Summe 1/N 1/(N+1) 1/(N+2) . 1/Pmax) .
Was in Klammern steht, ist die Differenz zweier harmonischer Reihen = H(Pmax)-H(N-1), Sie können schnell zählen, wenn Sie wollen

---

Warum ist das so: der Preis im Abstand von N Balken wird nur in die SMA-Gruppe von Pmax bis N "fallen". Weniger als N spielt keine Rolle, und unter Pmax zählen wir nicht

in jedem SMA werden die Gewichte 1/Periode sein, d.h. in allen auf einmal 1/N 1/(N+1) 1/(N+2) ...