Diskussion zum Artikel "Visualisierung! Eine grafische MQL5 Bibliothek ähnlich 'plot' der Sprache R" - Seite 2
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
Ist es möglich, zwei oder mehr Skalen auf dem Diagramm zu erstellen - ähnlich wie bei einem Lineal, bei dem die Teilungen in Zentimetern und Zoll angegeben werden, wobei die Werte nur dann angegeben werden, wenn der Punkt zur Erstellung des Diagramms verwendet wurde?
Mit der Methode MarksToAxisAdd ist es ganz einfach, eine neue Markierung im Rahmen Ihrer Aufgabe hinzuzufügen.
//+------------------------------------------------------------------+
//| Skript-Programmstartfunktion|
//+------------------------------------------------------------------+
void OnStart()
{
double x[]={-11,-11,11,11};
double y[]={-10,10,-10,10};
//--- Grafik
CGraphic graph;
graph.HistoryNameWidth(80);
graph.Create(0,"Graph",0,30,30,830,430);
//--- Punkte
CCurve *curve=graph.CurveAdd(x,y,CURVE_LINES);
graph.CurvePlot(0);
//--- Markierungen zur X-Achse hinzufügen
graph.MarksToAxisAdd(x,8,MARK_INTERNAL,0);
graph.Update();
Sleep(1000);
}
P.S. Beachten Sie, dass die Methode MarksToAxisAdd keine neuen Objekte erzeugt. D.h. wenn Sie das Diagramm mit der Methode Redraw neu zeichnen, geht diese Markierung verloren.
P.P.S. Wenn Sie nicht nur neue Serifen hinzufügen, sondern sie auch signieren müssen, ist dies eine kompliziertere Aufgabe. In diesem Fall müssen Sie jede Serife manuell mit der Methode TextAdd eingeben.
Das Hinzufügen einer neuen Markierung im Kontext Ihrer Aufgabe ist mit der Methode MarksToAxisAdd ganz einfach.
//+------------------------------------------------------------------+
//| Skript-Programmstartfunktion|
//+------------------------------------------------------------------+
void OnStart()
{
double x[]={-11,-11,11,11};
double y[]={-10,10,-10,10};
//--- Grafik
CGraphic graph;
graph.HistoryNameWidth(80);
graph.Create(0,"Graph",0,30,30,830,430);
//--- Punkte
CCurve *curve=graph.CurveAdd(x,y,CURVE_LINES);
graph.CurvePlot(0);
//--- Markierungen zur X-Achse hinzufügen
graph.MarksToAxisAdd(x,8,MARK_INTERNAL,0);
graph.Update();
Sleep(1000);
}
P.S. Bitte beachten Sie, dass die Methode MarksToAxisAdd keine neuen Objekte erzeugt. D.h. wenn Sie das Diagramm mit der Redraw-Methode neu zeichnen, geht diese Markierung verloren.
P.P.S. Wenn Sie nicht nur neue Serifen hinzufügen, sondern sie auch signieren müssen, ist dies eine kompliziertere Aufgabe. In diesem Fall müssen Sie jede Serife manuell mit der Methode TextAdd eingeben.
Vielen Dank für die Antwort.
Es ist notwendig, dass die Kerben parallel sind - das Ziel ist es, zwei Werte eines Punktes zu sehen - also brauchen wir Signaturen von Punkten. Gibt es keine Pläne, die Arbeit mit der Karte so zu machen, wie mit der Karte - d.h. wenn man im Navigationsfenster zeigt, um die Kartenwerte durch Skalen zu erhalten?
Danke für die Antwort.
Ich brauche die Kerben parallel - das Ziel ist es, zwei Werte eines Punktes zu sehen - also brauche ich die Signaturen der Punkte. Planen Sie, mit einem Diagramm wie mit einem Diagramm zu arbeiten - d.h. beim Zeigen im Navigationsfenster die Werte des Diagramms nach Skalen zu erhalten?
Als Teil der Grafikbibliothek ist diese Funktionalität noch nicht geplant. Aber im gleichen Thema über die Grafikbibliothek habe ich bereits eine benutzerdefinierte Implementierung der Funktionalität, von der Sie sprechen, kennengelernt(#36).
Diese Funktionalität war nicht als Teil der Grafikbibliothek geplant. Aber in demselben Thread zur Grafikbibliothek habe ich bereits eine benutzerdefinierte Implementierung der Funktionalität gesehen, von der Sie sprechen(#36).
Danke für den Link. Es ist schade, dass sie nicht geplant ist - ich denke, dass sie für die reale Arbeit mit Grafiken äußerst nützlich ist.
Ich habe eine Frage, auf die Sie wahrscheinlich die Antwort wissen, da Sie viel Zeit mit Diagrammen verbracht haben, und ich fürchte, dass ich wieder ein Fahrrad erfunden habe - gibt es eine solche Methode, ein Diagramm zu zeichnen, indem man mehrschichtige Datenpakete in Form einer Matrix übereinanderlegt? Menschlich (in der physischen Ausführung) sieht es so aus - wir nehmen ein Glas - differenzieren es in Zellen, in jeder Zelle abhängig Index x von y, machen Normalisierung der Indikatoren, und malen je nach Indikator der Zellen auf dem Glas mit einem Farbverlauf, dann der nächste Indikator mit der gleichen Matrix, aber mit anderen Werten, auch normalisieren und malen, aber mit einem anderen Veet. Das Ergebnis der Analyse wird eine Palette, die sich herausstellte, sein - es wird angenommen, dass durch den Schatten der Farbe und ihre Fähigkeit, Licht zu übertragen, können Sie Muster der Einfluss eines Indikators auf einem anderen zu identifizieren. (wenn überhaupt, ist dies mein Know-how :)) Es gibt etwas Ähnliches in Terminal, aber es ist ein Diagramm auf Extremen, die nicht das gleiche ist, aber vielleicht hat es meine Idee inspiriert.
Danke für den Link. Es ist schade, dass es nicht geplant ist - ich denke, es ist äußerst nützlich für die echte Arbeit mit Diagrammen.
Ich habe eine Frage, auf die Sie wahrscheinlich die Antwort wissen, da Sie viel Zeit mit Diagrammen verbracht haben, und ich fürchte, dass ich wieder ein Fahrrad erfunden habe - gibt es eine Methode, um ein Diagramm zu erstellen, indem man mehrere Datenschichten in Form einer Matrix übereinanderlegt? Menschlich (in der physischen Ausführung) sieht es so aus - wir nehmen ein Glas - differenzieren es in Zellen, in jeder Zelle abhängig Index x von y, machen Normalisierung von Indikatoren, und malen je nach Indikator der Zellen auf dem Glas mit einem Farbverlauf, dann der nächste Indikator mit der gleichen Matrix, aber mit anderen Werten, auch normalisieren und malen, aber mit einem anderen Veet. Das Ergebnis der Analyse wird eine Palette, die sich herausstellte, sein - es wird angenommen, dass durch den Schatten der Farbe und ihre Fähigkeit, Licht zu übertragen, können Sie Muster der Einfluss eines Indikators auf einem anderen zu identifizieren. (wenn überhaupt, ist dies mein Know-how :)) Es gibt etwas Ähnliches in Terminal, aber es stellt Graphen nach Extremen dar, was überhaupt nicht dasselbe ist, aber es könnte meine Idee inspiriert haben.
Wahrscheinlich habe ich Sie falsch verstanden, aber das, was Sie beschreiben, wird am ehesten mit klassischen Clustering-Methoden aus dem maschinellen Lernen in Verbindung gebracht. Insbesondere sieht es nach so etwas wie Kohonen-Maps aus.
Kohonen-Maps sind nicht genau so, es ist ein anderes Prinzip... Ich dachte nur, dass dieser Ansatz dem maschinellen Lernen helfen würde... Wie auch immer, entweder denke ich in die richtige Richtung oder es ist noch nicht so weit und muss noch ausgewertet werden. Danke!
eine kleine Bitte, wenn auch nicht schwer, können Sie die Möglichkeit hinzufügen, Candlesticks oder Balken auf OHLC zu zeichnen? Ich mag diese Leinwände sehr, ich würde gerne vollwertige Charts auf ihnen zeichnen können.
Vielleicht brauchen Sie nur DRAW_COLOR_CANDLES?
Nein, nur, dass Sie ohne Indikatoren ein zusätzliches Diagramm mit Informationen über Verteilungen anzeigen könnten (kein Problem damit), und es wäre schön, ein Stück Diagramm von einem anderen TF, sagen wir, oder andere Informationen in Form von Balken, durch die gleiche Grafikbibliothek anzeigen zu können. Es ist einfach bequem und schnell, damit zu arbeiten, natürlich kann man alle 4 Arten von Preisen mit Linien ausgeben, aber es sieht nicht gut aus.
Nein, genau das ohne Indikatoren wäre es möglich, ein zusätzliches Diagramm mit Informationen über Verteilungen anzuzeigen (es gibt keine Probleme mit diesem), und es wäre schön, in der Lage sein, ein Stück des Charts von einem anderen TF, sagen wir, oder andere Informationen in Form von Bars, durch die gleiche Grafik-Bibliothek anzuzeigen. Es ist einfach bequem und schnell, damit zu arbeiten, Sie können natürlich Linien, um alle 4 Arten von Preisen anzuzeigen, aber es sieht nicht ein Ass.
Guten Tag!
Der Modus CustomPlotFunction ist in der Bibliothek für ähnliche Zwecke implementiert, das Beispiel für seine Verwendung implementiert ungefähr das, woran Sie interessiert sind.
P.S. Mehr Details darüber sind im Forum #53 geschrieben.