Bugs und Fehlfunktionen - Seite 2

 
angevoyageur:

Sie brauchen nichts anderes zu erwarten als das, was in der Dokumentation beschrieben ist.

Die Anzahl der Puffer in einem Indikator muss im Voraus deklariert werden, z.B. mit Compiler-Direktiven:

#propertyindicator_buffers 3// Anzahl von Puffern
#propertyindicator_plots 2// Anzahl der Plots

Die Anzahl der Puffer, die zum Plotten verwendet werden, hängt vom Typ des Indikators ab. Dieser Typ kann dynamisch eingestellt werden. Der Compiler hat also keine Möglichkeit, die korrekte Verwendung der Puffer zu bestimmen. Die obige Deklaration könnte mit 2 Plots von 1 Puffer verwendet werden, der dritte mit INDICATOR_CALCULATIONS, oder 1 Plot von 1 Puffer und 1 von 2 Puffern, oder...

MQL5 gibt Ihnen eine große Flexibilität, es liegt an Ihnen, Ihre Puffer logisch mit Ihrem Indikator (en) zu verbinden. Dies ist kein Fehler.

ich würde das nicht als bug bezeichnen, das ist eine dysfunktion. ich werde von nun an angeben, ob ich die meldung als bug oder als dysfunktion betrachte.

Ich verstehe das #pragma-Konzept, aber wenn ich durch #pragmas deklariere

#property indicator_buffers 3
#property indicator_plots   3

deklariere, bedeutet das nicht, dass ich 3 Puffer und 3 Plots verwende, es bedeutet, dass ich die Ressourcennutzung auf maximal 3 Puffer mit maximal 3 Plots begrenzt habe, damit das System weiß, wie viel Speicher und/oder andere Ressourcen es beim Start meines Indikators reservieren soll.

Unabhängig von Maximalwerten, die ich deklariert habe, wird die tatsächliche Nutzung durch dynamische Zuweisung bestimmt.
Wenn ich also einenIndikatorpuffer alsINDICATOR_CALCULATIONS-Puffer deklariere, erwarte ich nicht, dass er im Diagramm sichtbar ist.

 
angevoyageur:

Welche Objekte zeichnen Sie, das erste scheint eine Trendlinie zu sein, aber das zweite hat nur 2 Ankerpunkte?

Wie ist Ihre Einstellung für die Magnetempfindlichkeit?

Das ist die Fibonacci-Erweiterung, die Magnetempfindlichkeit ist auf 50 eingestellt, aber sie funktioniert auch bei niedrigeren Werten wie 20 nicht richtig.

und auch andere Arten von Objekten, wie Trendlinien.

 
graziani:

g #4

Der Magnet (Werkzeuge->Optionen->Diagramme->Magnetempfindlichkeit) funktioniert bei Kerzen nicht richtig.

die ausgewählten Punkte werden nicht auf typischen Kerzenpunkten (Hoch/Tief/...) platziert, sondern im Raum dazwischen.

Außerdem werden, wenn man einen Punkt verschiebt, auch andere verschoben, obwohl man nur einen verschieben wollte.

Ich denke, dass das Einrasten nur funktioniert, wenn Sie den Ankerpunkt loslassen, nicht während Sie ihn ziehen. Ich weiß, dass es z.B. in Ninja anders funktioniert, aber ich denke, dass dies das übliche Verhalten für MetaTrader ist.
Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Methods of Object Binding
Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Methods of Object Binding
  • www.mql5.com
Standard Constants, Enumerations and Structures / Objects Constants / Methods of Object Binding - Documentation on MQL5
 
RaptorUK:
Ich glaube, das Einrasten funktioniert nur, wenn Sie den Ankerpunkt loslassen, nicht während Sie ihn ziehen. Ich weiß, dass es z. B. in Ninja anders funktioniert, aber ich glaube, das ist das übliche Verhalten für MetaTrader.
Nein, in MT4 funktioniert das korrekt.
 
graziani:

Ich würde dies nicht als Fehler bezeichnen, sondern als Funktionsstörung. Ich werde von nun an angeben, ob ich einen Bericht als Fehler oder als Funktionsstörung betrachte.

Ich verstehe das #pragma Konzept, aber wenn ich durch #pragmas deklariere

deklariere, bedeutet das nicht, dass ich 3 Puffer und 3 Plots verwende, es bedeutet, dass ich die Ressourcennutzung auf maximal 3 Puffer mit maximal 3 Plots begrenzt habe, damit das System weiß, wie viel Speicher und/oder andere Ressourcen es beim Starten meines Indikators reservieren sollte.

Unabhängig von den angegebenen Maximalwerten wird die tatsächliche Nutzung durch dynamische Zuweisung bestimmt.
Wenn ich also einenIndikatorpuffer alsINDICATOR_CALCULATIONS-Puffer deklariere, erwarte ich nicht, dass er im Diagramm sichtbar ist.

Können Sie den Codeschnipsel zeigen, den Sie für diese "Funktionsstörung" verwendet haben?
 
RaptorUK:
Ich glaube, der Snap funktioniert nur, wenn Sie den Ankerpunkt loslassen, nicht während Sie ihn ziehen. Ich weiß, dass es in Ninja anders funktioniert, aber ich denke, das ist das übliche Verhalten für MetaTrader.
Ah, ich verstehe, das Einrasten auf der X-Achse funktioniert, wenn Sie es in MT4 bewegen, aber nicht MT5.
 
graziani:

Dies ist die Fibonacci-Erweiterung, Magnetempfindlichkeit auf 50 eingestellt. aber es funktioniert nicht richtig auch auf niedrigere Werte, wie 20.

und auch andere Arten von Objekten, wie Trendlinien.

Ich bin nicht sehr mit dieser Art von Werkzeug gewöhnt , aber scheint mir, dass funktioniert, nicht ?

Empfindlichkeit des Magneten

 
angevoyageur:
Können Sie den Codeschnipsel zeigen, den Sie für diese "Störung" verwendet haben?

OK, es scheint, dass wir uns jetzt von meiner Idee, diese "Fehlfunktion" zu melden, entfernen.

Der Punkt ist, dass wenn Sie ein dynamisches Array mit SetIndexBuffer(int, double,ENUM_INDEXBUFFER_TYPE) definieren, ist es logisch anzunehmen (da es nicht in der Dokumentation angegeben ist), dass durch die Definition von

   SetIndexBuffer(0, all, INDICATOR_DATA);
   SetIndexBuffer(1, up, INDICATOR_DATA);
   SetIndexBuffer(2, down, INDICATOR_CALCULATIONS);

das Vorhandensein des dritten Puffers nirgendwo zu sehen sein wird: im Diagramm, in den Indikatoreigenschaften oder im EA, der diesen Indikator verwendet.
Zumal Sie gezwungen sind, die Art der Verwendung dieses dynamisch zugewiesenen Arrays zu definieren.
(Um es noch einmal zu wiederholen: Die Definition der Anzahl von Puffern und Plots durch #pragmas bedeutet nicht, dass Sie alle davon verwenden werden. )

Aber abgesehen davon, dass dies nicht wahr ist, scheint es auch für erfahrene Programmierer nicht offensichtlich zu sein, so dass ich im Moment keinen Sinn darin sehe, solche "Fehlfunktionen" zu melden.

Also ... soll ich solche Dinge melden oder nicht?

Ich werde es noch einmal mit etwas Ähnlichem versuchen, das mir vorschwebt, aber im Moment erscheint mir das als Zeitverschwendung (nicht nur für mich) ;)

 
angevoyageur:

Ich bin nicht sehr vertraut mit dieser Art von Werkzeug, aber es scheint mir, dass es funktioniert, oder?


Ich kann nicht glauben, dass Sie diesen Fehler nicht gleich beim ersten Versuch reproduzieren können.

Stellen Sie einfach die Empfindlichkeit auf 20/50 und versuchen Sie, die Ankerpunkte der Trendlinie, Fibo oder ein beliebiges Objekt herum zu bewegen.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Methods of Object Binding
Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Methods of Object Binding
  • www.mql5.com
Standard Constants, Enumerations and Structures / Objects Constants / Methods of Object Binding - Documentation on MQL5
 
RaptorUK:
Ah, ich verstehe, das Einrasten auf der X-Achse funktioniert, wenn man sie im MT4 bewegt, aber nicht im MT5.

Ja!

und er rastet auf der falschen Ebene ein!

und wenn man andere Punkte verschiebt, verschieben sich alle Punkte, die nicht gefangen sind, auch, obwohl sie das nicht sollten.

Wie kommt es, dass ich der Erste bin, dem das auffällt?

Ich habe dieses irritierende Verhalten bemerkt, nachdem ich MT5 vor 6 Monaten 10 Minuten lang benutzt hatte.