Fehler, Irrtümer, Fragen - Seite 251

 
Yedelkin:

Vergessen Sie aber nicht, dass die Sprache von Programmieranfängern verwendet wird, die mit den Feinheiten von Standardwerten, Funktionsüberladung, Compilerproblemen, der obligatorischen Angabe von vier Parametern in bestimmten Fällen usw. nicht vertraut sind. Neulinge (mich eingeschlossen) arbeiten mit dem Hilfetext, der zur Verfügung steht, und versuchen nicht zu spekulieren, was sie nicht wissen. Wenn zum Beispiel alle Ihre Zeilen in der Referenz wiedergegeben würden, hätten wederLizar noch ich überhaupt ein Problem gehabt.

In der Dokumentation gibt es einen Abschnitt zum Überladen von Funktionen, in dem es heißt:

Der Compiler wählt je nach Art und Anzahl der Argumente die richtige Funktion aus. Die Regel, nach der diese Auswahl getroffen wird, wird alsSignaturabgleichsalgorithmusbezeichnet . Die Signatur bezieht sich auf die Liste der in der Funktionsdeklaration verwendeten Typen.

...

Unter Überladung versteht man die Vergabe mehrerer Werte an eine Funktion. Die Wahl eines bestimmten Wertes hängt von den Arten der Argumente ab, die die Funktion erhält. Die Wahl der Funktion hängt von der Konsistenz der Argumentliste ab, wenn die Funktion mit der Parameterliste in der Funktionsdeklaration aufgerufen wird.

Wenn eine überladene Funktion aufgerufen wird, muss der Compiler einen Algorithmus haben, um die richtige Funktion auszuwählen. Der Algorithmus, der diese Auswahl durchführt, hängt davon ab, welche Typkonvertierungen vorhanden sind. Die beste Übereinstimmung muss einzigartig sein. Es muss für mindestens ein Argument am besten sein und für alle anderen Argumente genauso gut wie die anderen Übereinstimmungen.

Nachstehend finden Sie einen Algorithmus für jedes Argument.

Algorithmus zur Auswahl einer überladenen Funktion

  1. Verwenden Sie einen strengen Abgleich (wenn möglich).
  2. Versuchen Sie es mit einer standardmäßigen Erhöhung.
  3. Versuchen Sie eine Standardtypkonvertierung.
 
alexluek:

Ja, auf dem Bild, und Sie können einen beliebigen Server (aus den Standard-Servern) wählen.

Ich verließ das Terminal für 3 Stunden M5, ich kam zurück und es war nur der Preis springen ohne

Ich verließ das Terminal um 3 Uhr auf der M5 und als ich zurückkam, gab es nur den Preissprung, aber keinen Balken. Ich habe das Terminal neu gestartet und es gibt nur Balken für diese 3 Stunden.

Ich habe das Terminal heute mit mt5 Ticket 373 (aus dem Forum) installiert.

https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe

Und noch etwas - vielleicht liegt es an mir, aber wenn Sie eine neue Karte auswählen,

es erfolgt keine Aktualisierung und die Balken erscheinen nach dem Neustart des Terminals. Abb. 3

Und so läuft die Preislinie, bis Sie sie neu starten. Die einzigen Balken, die erscheinen, sind die Balken

die seit dem Start des Terminals aufgetaucht sind. Vielleicht mache ich etwas falsch,

aber ich habe 3 Mal neu installiert und versucht, Dateien mit Anführungszeichen zu löschen

Es lässt sich immer noch nicht aktualisieren.

Bitte fügen Sie das Terminalprotokoll bei.
 
Rosh:

In der Dokumentation gibt es einen Abschnitt über das Überladen von Funktionen, in dem es heißt:

Sie antworten wie ein Profi, der die Art einer Funktion an ihrem Aussehen erkennen kann. Versuchen Sie, die gleiche Frage aus der Sicht eines Nichtfachmanns zu betrachten.

...Ich habe eine klare Aussage aus dem Handbuch zitiert, wonach "die meisten Eigenschaften keine Unterfensternummer erfordern". Und erklärte, wozu diese Formulierung führte. Ich habe angeboten, eine bestimmte Klarstellung in einem bestimmten Abschnitt des Handbuchs vorzunehmen. Stattdessen verweisen Sie mich auf den Abschnitt Überladen von Funktionen im Forum. Gleichzeitig (aus der Sicht eines Anfängers) sagt die Beschreibung der Funktion ChartGetInteger() nichts über das Überladen aus.

Natürlich hatte ich schon vor einiger Zeit über das Überladen von Funktionen gelesen. Und ich bin zu dem Schluss gekommen, dass ich keine überladenen Funktionen für mich selbst erstellen werde (um nicht in Probleme zu geraten).Ich hätte nie gedacht, dass man im Falle von ChartGetInteger() von Funktionsüberladung sprechen muss, denn nur Profis könnten das sofort erkennen.

Deshalb wiederhole ich noch einmal: Nicht-Profis arbeiten mit dem vorhandenen Hilfetext (ich füge hinzu: in Bezug auf die konkrete Funktion) und versuchen nicht zu erraten, was sie nicht wissen. Wenn Sie darauf bestehen, dass das Handbuch einen Abschnitt "Funktionsüberladung" enthält, und dass dieser Abschnitt alle Probleme löst, schlage ich vor, den nächsten Schritt zu machen: im Hilfetext für eine bestimmte Funktion ChartGetInteger() die Information wiederzugeben , dass die Funktion überladbar ist, und welche Konsequenzen das haben kann. Obwohl es meiner Meinung nach einfacher ist, in der Referenz das zu machen, was ich zuvor in Absatz 5 erwähnt habe.

Zum Hinzufügen. Ich habe meinen Horizont erweitert, also ist das Problem für mich gelöst. Danke. Jetzt geht es darum, dafür zu sorgen, dass andere Nichtfachleute nicht auf denselben Harken treten. Das ist alles. Es liegt an den Entwicklern, die Dinge so zu belassen, wie sie sind - dann wird sich die heutige Diskussion im Forum verlieren, und Neulinge werden mit der Beschreibung der spezifischen Funktion, wie sie ist, allein gelassen.

 
antt:
Bitte fügen Sie das Terminalprotokoll bei.

Es tut mir leid, dass ich ihn gelöscht habe, als er nicht gebraucht wurde. Ich weiß nicht, worum es sich handelt

aber es funktioniert auf Alpari, vielleicht sollte jemand versuchen

über den Link aus dem Forum "mt5 updates" zu installieren.

Danke für die Hilfe - viel Glück

 
alexluek:

aber auf Alpari funktioniert alles, vielleicht sollte es jemand selbst ausprobieren

Ich weiß nicht, wie es jetzt ist, aber bis zum Ende des Sommers hatte Alpari veraltete Builds. Ich weiß es jetzt nicht, aber bis zum Ende des Sommers hatte Alpari veraltete Builds.
 
Yedelkin:
Ich weiß nicht, wie es jetzt ist, aber bis zum Ende des Sommers hatte Alpari veraltete Builds. D.h. ihre Aktualisierungen wurden um 2-4 Wochen verzögert.

Sie sollten ein Alpari-Konto für das hier heruntergeladene Terminal registrieren, dann wird klar, wo die Balken nicht aktualisiert werden und ob es am Terminal liegt oder nicht.

Zum Vergleich: Der Alpari-Server steht hier - 62.213.101.242:443

Yedelkin:

4. Das obige Beispiel zeigt, dass der dritte Parameter(sub_window) immer für die zweite Variante der Funktion angegeben werden muss, auch wenn die Eigenschaft selbst keine Subwindow-Nummer erfordert. D.h. die zweite Variante der Funktion (die sowohl mit zwei als auch mit drei Parametern verwendet werden kann) erfordert immer alle vier Parameter. Oder?

5. Wenn das stimmt, haben wir zwei Dinge herausgefunden. Erstens hat sich meine ursprüngliche Version des Problems als fehlerhaft erwiesen. Zweitens ist der Grund für diese fehlerhafte Version, dass die Informationen im Handbuch unvollständig sind. Daher schlage ich eine Klarstellung im Handbuch vor: "Für die zweite Option gibt es keinen Standardwert, daher muss die Nummer des Teilfensters immer angegeben werden. Für die meisten Eigenschaften, die keine Nummer eines Unterfensters erfordern, ist die Angabe von 0 (Hauptdiagrammfenster)" erforderlich. Oder so ähnlich.


4. Bei der zweiten Variante sind alle vier Parameter erforderlich (im Gegensatz zur ersten Variante). Wie wir bereits herausgefunden haben.

5. Das Handbuch braucht mehr Klarheit, mehr Querverweise und mehr Beispiele.

PS

Außerdem schlage ich Entwicklern vor, zumindest in der Online-Version des Verzeichnisses zusätzlich einen solchen Block zu erstellen

Artikel zu diesem Thema / Siehe auch:

1. ........................................................

2. ........................................................

3. ........................................................

 
Interesting:

Ich schlage außerdem vor, dass die Entwickler zumindest in der Online-Version des Handbuchs den folgenden Block hinzufügen

Artikel zu diesem Thema / Siehe auch:

1. ........................................................

2. ........................................................

3. ........................................................

Ich stimme dem vollkommen zu. Wir müssen jedoch bedenken, dass dies zusätzliche Kosten verursacht: Zeit, Arbeit usw.

...Und was wäre, wenn für die Online-Version des Leitfadens ein Block zur Verfügung gestellt würde, in den jeder (der Autor eines Artikels, der Autor einer Frage im Forum) den Link zu dem vorhandenen Material zum Thema der Website eingeben kann? Es wäre für die Moderatoren viel einfacher, den Link auf der linken Seite zu entfernen, als den Überblick über neue Artikel/Themen zu behalten. Und wir werden die Möglichkeit haben, das Wissen mit "zukünftigen Generationen" zu teilen. :)

 
!
Interesting:

Sie sollten ein Alpari-Konto für das hier heruntergeladene Terminal registrieren, dann wird klar, wo die Balken nicht aktualisiert werden und ob es am Terminal liegt oder nicht.

Zum Vergleich: Der Alpari-Server steht hier - 62.213.101.242:443

Ich möchte mich zu diesem Thema abmelden - geben Sie in der Account-Registrierung diese Server-Parameter ein

(und verschrieb etwa 15 verschiedene ähnliche 62.213.101.242:443 und übrigens auch diese)

Ich bekomme immer das gleiche Ergebnis (Mt5 373) - kein neues Demokonto registrieren.

Vielleicht mache ich etwas falsch, wenn jemand etwas Ähnliches hat, kann er auch einen Antrag stellen!

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 
alexluek:
!

Möchten Sie den Betreff abbestellen - geben Sie diese Server-Parameter in der Account-Registrierung ein

(und verschrieb etwa 15 verschiedene ähnliche 62.213.101.242:443 und übrigens auch diese)

Ich habe das gleiche Ergebnis (Mt5 373) - nicht registrieren neue Demo-Konto.

Vielleicht mache ich auch etwas falsch, wenn jemand etwas Ähnliches hat, kann er auch einen Antrag stellen!

Man sagt, es ist besser, es in Bildern zu erklären. Ich werde es versuchen...

So registrieren wir ein neues Konto bei Alpine

1. Fügen Sie der Liste einen Server hinzu.


2. Ein neues Konto hinzufügen


Anmeldung bei einem bestehenden Konto.


 
Interesting:

Man sagt, dass Bilder die Dinge besser erklären können. Ich werde es versuchen...

Wir registrieren also ein neues Konto auf den Alpen

1. Wir nehmen den Server in die Liste auf.


2. Ein neues Konto hinzufügen


Anmeldung bei einem bestehenden Konto.


Na ja, wenigstens bekommst du einen Scan, aber ich bekomme keine

auf alle Alpari-Server-Eingaben, ich werde Ihre versuchen.

(zum Beispiel 148.58,....)

Grund der Beschwerde: