Interessantes Material, danke!
Die Umsetzung der Mustererkennung hat mir nicht gefallen:
//+------------------------------------------------------------------+ //|| Mustererkennung| //+------------------------------------------------------------------+ PATTERN_TYPE CProgram::GetPatternType(double A,double B,double C,double D,double E)
es ist klar, dass die Methode ihre Aufgabe erfüllt, vielleicht ist sie für diesen Artikel die optimale Lösung
Ich würde gerne eine elegantere (universelle) Lösung für dieses Problem finden, so etwas wie eine Matrix zum Speichern von Daten (Array)? - Ist jemand auf eine solche Implementierung der Mustersuche gestoßen?
Die Muster M2 und M4 auf den Bildern sind identisch - ist das ein Tippfehler?
Wir werden ihn korrigieren, danke.
Interessantes Material, danke!
Ich mochte die Implementierung der Mustererkennung nicht:
es ist klar, dass die Methode ihre Aufgabe erfüllt, vielleicht ist sie für diesen Artikel die optimale Lösung
Ich würde gerne eine elegantere (universelle) Lösung für dieses Problem finden, so etwas wie eine Matrix zum Speichern von Daten (Array)? - Ist jemandem eine solche Implementierung der Mustersuche bekannt?
Natürlich könnten wir alles in eine Struktur oder ein Array packen. Aber bis jetzt ist es einfacher, es von Grund auf in Form von Punkten einer Polylinie zu verstehen.
...
Ich würde gerne eine elegantere (universelle) Lösung für dieses Problem finden, so etwas wie eine Matrix zum Speichern von Daten (Array)? - hat jemand über eine solche Umsetzung der Mustersuche kommen?
Ich habe, ich habe es universell getan. Aber es ist unwahrscheinlich, dass ich sie finde, ich weiß nicht einmal, wo ich anfangen soll zu suchen.
Es gibt eine Linie, es gibt zwei Punkte. Der dritte Punkt kann eine von zwei Positionen einnehmen: zwischen dem ersten und dem zweiten Punkt oder über dem ersten Punkt (nehmen wir an, dass die erste Linie nach oben gerichtet ist). Jetzt gibt es drei Punkte, der vierte Punkt kann eine der drei Positionen einnehmen oder den unteren Rand von zwei.... Zunächst gibt es zwei Punkte im Array, Sie stehen bei Index 1, fügen alle Varianten der Position des dritten Punktes an das Ende des Arrays. Man geht zu Index 2, fügt alle Varianten eines weiteren Punktes an das Ende des Arrays hinzu.... usw. Das Muster selbst wird durch Zahlen festgelegt, sobald die Größe des Arrays die angegebene Größe erreicht - hier ist das Muster mit dieser Zahl. Sie benötigen ein Array von Strukturen und in der Struktur ein Array mit Punktnummern.
***
Das Array enthält nicht die Koordinaten der Punkte, sondern die Nummern der Scheitelpunkte von Anfang an. Zum Beispiel würde M16 wie folgt kodiert werden: {1, 3, 2, 5, 4}. Und wenn man einen weiteren Scheitelpunkt hinzufügt, erhält man diese Optionen?
{1, 3, 2, 5, 4}
{1, 3, 2, 5, 6, 4}
{1, 3, 2, 5, 4, 6}
***
So überprüfen wir es. Nehmen wir an, wir suchen nach einem Muster: {1, 3, 2, 5, 4} Das bedeutet, dass der Scheitelpunkt 1 unter 3 liegt, 5 über 2 und unter 4, usw.
Das war es, es war universell. Aber ich glaube nicht, dass ich es finden werde, ich weiß nicht einmal, wo ich anfangen soll zu suchen.
Es gibt eine Linie, sie besteht aus zwei Punkten. Der dritte Punkt kann eine von zwei Positionen einnehmen: zwischen dem ersten und dem zweiten Punkt oder über dem ersten Punkt (nehmen wir an, dass die erste Linie nach oben gerichtet ist). Jetzt gibt es drei Punkte, der vierte Punkt kann eine der drei Positionen einnehmen oder den unteren Rand von zwei.... Zunächst gibt es zwei Punkte im Array, Sie stehen bei Index 1, fügen alle Varianten der Position des dritten Punktes an das Ende des Arrays. Man geht zu Index 2, fügt alle Varianten eines weiteren Punktes an das Ende des Arrays hinzu.... usw. Das Muster selbst wird durch Zahlen festgelegt, sobald die Größe des Arrays die angegebene Größe erreicht - hier ist das Muster mit dieser Zahl. Sie benötigen ein Array von Strukturen und in der Struktur ein Array mit Punktnummern.
***
Das Array enthält nicht die Koordinaten der Punkte, sondern die Nummern der Scheitelpunkte von Anfang an. Zum Beispiel würde M16 wie folgt kodiert werden: {1, 3, 2, 5, 4}. Und wenn Sie einen weiteren Scheitelpunkt hinzufügen, erhalten Sie diese Varianten?
{1, 3, 2, 5, 4}
{1, 3, 2, 5, 6, 4}
{1, 3, 2, 5, 4, 6}
***
Und das lässt sich folgendermaßen überprüfen. Nehmen wir an, wir suchen nach einem Muster: {1, 3, 2, 5, 4} Das bedeutet, dass der Scheitelpunkt 1 unter 3 liegt, 5 über 2 und unter 4, usw.
Ja, das ist die Art von Kodierung, die ich gerne finden würde.
Es sieht aus wie eine gewichtete Graphen-Adjazenzmatrix, bei der das Gewicht angibt, welcher Knoten höher/niedriger als der aktuelle Knoten ist.
- neerc.ifmo.ru
Hervorragende Arbeit - sowohl in Bezug auf die Problemstellung und ihre Softwarelösung als auch in Bezug auf die Umsetzung der grafischen Schnittstelle.
Und nur als Anregung: Wenn möglich, fügen Sie die Ergebnisse der Untersuchung der Effektivität der Zahlen selbst für das Auffinden von Markteintrittspunkten hinzu.
Wahrscheinlich kann dies aufgrund des Umfangs der Aufgabe ein eigenes Thema und eine eigene Veröffentlichung sein.
Hervorragende Arbeit - sowohl in Bezug auf die Problemstellung als auch auf die Softwarelösung und die Implementierung der grafischen Benutzeroberfläche.
Und nur als Anregung: Fügen Sie, wenn möglich, die Ergebnisse der Untersuchung der Wirksamkeit der Zahlen selbst für das Auffinden von Markteintrittspunkten hinzu.
Wahrscheinlich kann dies aufgrund des Umfangs der Aufgabe ein eigenes Thema und eine eigene Veröffentlichung sein.
Danke, Alexander, dass dir mein Artikel gefällt. Was die Recherche angeht, so ist die Anwendung aus diesem Artikel für sie bereit. Die aktuellen Anpassungsmöglichkeiten bieten bereits eine große Anzahl von Optionen für die Suche.
Im nächsten Artikel werde ich versuchen, die Möglichkeiten der Anwendung zu erweitern.
Natürlich könnten wir alles in eine Struktur oder ein Array packen. Aber auf diese Weise ist es einfacher, es von Grund auf in Form von Punkten einer Polylinie zu verstehen.
Es ist klar, dass neben der Universalität, der Code in dem Artikel sollte klar und lesbar sein, aber ich mag kombinatorische Probleme, oder mein Gehirn zu wackeln, so dass ich diese Funktion durch die erste Bedingung durch eine Suche in ME gruppiert:
//+------------------------------------------------------------------+ //|| Mustererkennung| //+------------------------------------------------------------------+ PATTERN_TYPE GetPatternType(double A,double B,double C,double D,double E) { if(A>B && C>A && B>E && E>D) return(W6); if(A>B && C>E && E>A && B>D) return(W11); if(A>B && E>C && C>A && B>D)return(W12); if(A>B && C>E && E>D && D>A)return(W15); if(A>B && E>C && C>D && D>A) return(W16); // A>C if(A>C && B>D && D>A && C>E) return(M3); if(A>C && B>D && D>E && E>A) return(M8); if(A>C && D>B && B>E && E>A) return(M10); if(A>C && C>B && B>E && E>D) return(W1); if(A>C && C>E && E>B && B>D) return(W2); if(A>C && C>E && E>D && D>B) return(W4); if(A>C && E>A && C>B && B>D) return(W8); if(A>C && E>A && C>D && D>B)return(W10); // C>A sonst ? if(C>A && B>D && D>C && A>E) return(M7); if(C>A && D>B && B>C && A>E) return(M9); if(C>A && B>D && D>E && E>C) return(M13); if(C>A && D>B && B>E && E>C) return(M15); if(C>A && D>E && E>B && B>C) return(M16); if(C>A && A>E && E>B && B>D) return(W7); if(C>A && A>E && E>D && D>B) return(W9); if(C>A && E>C && A>D && D>B) return(W14); if(B>A && A>D && D>C && C>E) return(M1); if(B>A && A>D && D>E && E>C) return(M2); if(B>A && D>B && A>C && C>E) return(M5); if(B>A && D>B && A>E && E>C) return(M6); if(B>A && D>E && E>B && A>C) return(M11); if(B>D && D>A && A>E && E>C) return(M4); if(B>D && D>C && C>E && E>A) return(M12); if(B>D && A>E && E>C && C>B) return(W3); if(D>B && B>C && C>E && E>A) return(M14); if(D>B && A>E && E>C && C>D) return(W5); if(D>B && C>E && E>A && A>D) return(W13); return(-1); }
Es sollte noch eine kompakte und universelle Lösung geben!..... aber ich sehe sie noch nicht
Es ist klar, dass neben der Universalität, der Code in dem Artikel sollte auch visuelle und lesbar sein, aber ich mag Probleme auf Kombinatorik, oder mein Gehirn zu wackeln, so dass ich diese Funktion durch die erste Bedingung durch die Suche in ME gruppiert:
Es sollte doch eine kompakte und universelle Lösung geben!..... aber ich sehe sie noch nicht
Also gute Lösung oben Dmitry vorgeschlagen. Sie können es auf diese Weise spielen:
In den Argumenten der GetPatternType-Methode die Pattern-Dimension übergeben und das war's. Es selbst macht alle möglichen Kombinationen aus dieser Zahl und auf der Grundlage dieser Daten sucht für eine bestimmte in einer Struktur oder Array.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Merrill-Muster :
In diesem Artikel werden wir einen Blick auf das Modell der Merrill-Muster werfen und versuchen, deren aktuelle Relevanz zu bewerten. Zu diesem Zweck werden wir ein Werkzeug entwickeln, um die Muster zu testen und das Modell auf verschiedene Datentypen wie die Schluss-, Hoch- und Tiefstpreise sowie Oszillatorwerte anzuwenden.
Um zu klären, wie und für welche Daten wir Merrill-Muster anwenden werden, müssen wir verstehen, was sie tatsächlich sind. Die beiden Hauptkategorien sind die Muster, die den Buchstaben M und W ähneln. Sie werden M und W Muster genannt. Jede der Kategorien enthält 16 Muster.
Abb. 1 stellt 16 M Muster dar. Wie wir sehen können, liegt der Unterschied in der gegenseitigen Anordnung der fünf Punkte, die das Muster ausmachen.
Autor: Alexander Fedosov