Indikator, Benötigt Ratschläge zur automatischen Kontrolle des Abstands zwischen Texten (MT-4) - Seite 2

 
Für dieses Problem gibt es in MT4 keine gute Lösung. Eine Möglichkeit ist die Verwendung von ATR mit einer Periode von 100 Bars (und Offset 1), die zweite Möglichkeit ist das Schreiben einer Funktion, die Punkte in Abhängigkeit vom Zeitrahmen zurückgibt.
 
Dmitry Fedoseev:
Für dieses Problem gibt es in MT4 keine gute Lösung. Eine Möglichkeit ist die Verwendung von ATR mit einer Periode von 100 Bars (und Offset 1), die andere Möglichkeit ist das Schreiben einer Funktion, die Punkte in Abhängigkeit vom Zeitrahmen zurückgibt.

Meiner Meinung nach ist eine Leinwand eine absolut plattformübergreifende Universallösung, die im Vergleich zu grafischen Objekten große Möglichkeiten bietet.

 

Warum alles in Worten unterschreiben?
Dies würde die Wahrnehmung überlasten - viel Text auf dem Diagramm.

Ich würde für jedes Muster verschiedene Zeichensymbole erstellen (und in den Parametern einen Zeichencode auswählen).

 
Das stimmt, die Reihenfolge im Zeitplan ist wichtig. Aber es muss schnell gehen, ohne dass Sie sich zu Verzierungen hinreißen lassen und Ihre Energien auf Sie wissen schon wohin lenken
 

wie man es ohne Leinwand macht, aber nach den gleichen Prinzipien:

1. Sie benötigen die aktuelle Höhe des Diagrammfensters in Pixel, um den aktuellen Einzug zu bestimmen: ChartGetInteger mit der Eigenschaft CHART_HEIGHT_IN_PIXELS

2. um den Beginn der Diagrammzeichnung zu bestimmen: ChartTimePriceToXY

3) Wie lässt sich feststellen, welchen Bereich des Diagramms wir gerade sehen? ChartGetInteger mit den Eigenschaften CHART_VISIBLE_BARS und CHART_FIRST_VISIBLE_BAR

4. alles passiert in OnChartEvent. wir zeichnen Objekte wie OBJ_LABEL

Eigentlich erinnert mich das an ein altes Gejammer (auch meins) über einen mehrzeiligen Text... Ach, wenn doch nur...

 
Igor Zakharov:

wie man es ohne Leinwand macht, aber nach den gleichen Prinzipien:

1. Sie benötigen die aktuelle Höhe des Diagrammfensters in Pixel, um den aktuellen Einzug zu bestimmen: ChartGetInteger mit der Eigenschaft CHART_HEIGHT_IN_PIXELS

2. um den Beginn der Diagrammzeichnung zu bestimmen: ChartTimePriceToXY

3) Wie lässt sich feststellen, welchen Bereich des Diagramms wir gerade sehen? ChartGetInteger mit den Eigenschaften CHART_VISIBLE_BARS und CHART_FIRST_VISIBLE_BAR

4. alles passiert in OnChartEvent. wir zeichnen Objekte wie OBJ_LABEL

Eigentlich erinnert mich das an ein altes Gejammer (auch meins) über einen mehrzeiligen Text... Ach, wenn doch nur...

Sieht Canvas wie ein Monster aus? Und so ist es notwendig, einen Frankenstein zu schaffen...
Ein mehrzeiliger Kommentar wird auf einmal eingegeben.
 
Artyom Trishkin:
Der mehrzeilige Kommentar wird auf einmal erstellt.

kommentar? ist das der in der linken oberen ecke? wie hilft er dem autor des themas?

Oder meinen Sie eine Möglichkeit, mehrzeiligen Text in Verbindung mit Preis/Zeit auszugeben? können Sie mich unterrichten?

Ich verstehe den Teil mit der Leinwand und dem Monster nicht...

Übrigens, hier ist ein Beispiel auf Leinwand von Nikolay, fast genau das, was der Autor braucht, minimale Bearbeitungen:

https://www.mql5.com/ru/forum/329224#comment_14363671

 
Igor Zakharov:

wie man es ohne Leinwand macht, aber nach den gleichen Prinzipien:

1. Sie benötigen die aktuelle Höhe des Diagrammfensters in Pixel, um den aktuellen Einzug zu bestimmen: ChartGetInteger mit der Eigenschaft CHART_HEIGHT_IN_PIXELS

2. um den Beginn der Diagrammzeichnung zu bestimmen: ChartTimePriceToXY

3) Wie lässt sich feststellen, welchen Bereich des Diagramms wir gerade sehen? ChartGetInteger mit den Eigenschaften CHART_VISIBLE_BARS und CHART_FIRST_VISIBLE_BAR

4. alles geschieht in OnChartEvent. wir zeichnen Objekte wie OBJ_LABEL

Eigentlich erinnert mich das an ein altes Gejammer (auch meins) über einen mehrzeiligen Text... Ach, wenn doch nur...

Es ist besser, eine Funktion zu schreiben, die den Abstand in Preis zurückgibt, aber einer bestimmten Anzahl von Pixeln entspricht. Dann sollten wir im OnChartEvent durch den sichtbaren Teil des Diagramms gehen und die Abstände zu den Textbeschriftungen anpassen. Bei diesem Ansatz ist der Umfang der Änderungen minimal und der Unterschied zwischen dem Indikator und dem normalen Indikator ist ebenfalls minimal.

 
Artyom Trishkin:

Meiner Meinung nach ist Kanvas eine absolut plattformübergreifende Universallösung, die im Vergleich zu grafischen Objekten enorme Möglichkeiten bietet.

Nein. Niemand braucht sie, außer einer kleinen Handvoll Enthusiasten. Und die meisten Menschen brauchen es, damit alles einfach, übersichtlich und verständlich ist.

 
Dmitry Fedoseev:

Nein. Niemand braucht sie, außer einer kleinen Handvoll Enthusiasten. Und die meisten Menschen wollen, dass es einfach, unkompliziert und leicht zu verstehen ist.

Es ist einfacher und übersichtlicher, mit Hilfe von grafischen Objekten alles Erfindbare, Bewegliche und Einstellbare auf die Leinwand zu schreiben/zu zeichnen. Das Ziel ist einfach. Aber ihr Verhältnis ist ein Chaos. Und Kanvas ist auch ein Objekt, aber ein Objekt pro Kerze - du erstellst einfach eine Leinwand und zeichnest dort alles, was du brauchst. Sie müssen nicht darüber nachdenken, wie Sie den Zeilenabstand einhalten, wenn Sie die Diagrammperiode und die vertikale Skala ändern.