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
Also bauen Sie eine Fabrik. Damit wäre das Problem gelöst.
Es ist so schon leicht genug, dort zu arbeiten. Das Objekt ist recht starr strukturiert. Er ruft eine virtuelle Load-Methode jedes seiner Mitglieder auf, die ihrerseits dasselbe tun. Am Anfang eines jeden Datenblocks (Objekts) wird die ID des Typs geschrieben (zur Kontrolle beim Laden). Mehr gibt es nicht zu sagen. Es ist eine Art selbstgebaute Fabrik.
Es ist sinnvoll, eine Fabrik zu erstellen, wenn zuvor unbekannte Typen in der Datei enthalten sein können. Dann werden die Fabrik und die Typenregistertabelle benötigt. Während das Problem nicht so gelöst war, habe ich es mit Büroklammern und Klebeband geschafft. :)
Gunns Fan.
Liegt der zweite Ankerpunkt in der Zukunft, ändert sich der Winkel.
Außerdem hat dieses Objekt einige Probleme beim Kopieren (bei gedrückter Strg-Taste). Sehr oft wird nicht kopiert, sondern das Original mitgeschleppt, und es braucht den dritten oder fünften Versuch, um zu kopieren.
OK, gut.
Slava, kann ich fragen (für die allgemeine Entwicklung), warum Sie nicht initialisieren können virtuelle Methode Tabelle am Anfang des Konstruktors (nach Vorfahren Initialisierung)?
Ich habe es Ihnen schon einmal gesagt. Die Konstrukteure arbeiten die Hierarchie aus. Während ein Vorfahre gebaut wird, gibt es keine Informationen über Nachkommen.
Ich habe es bereits gelesen. Und ich habe es sehr gut verstanden. Und ich habe eine Frage gestellt, die auf dem beruht, was ich gelesen habe. Ich werde versuchen, sie mit Bildern zu verdeutlichen.
Ich verstehe alles, es ist schwieriger zu machen, es gibt viele Feinheiten. Es ist viel einfacher und vielseitiger (für Sie), die gesamte implizite Initialisierung am Ende zu schreiben. Und ich glaube sogar im Voraus, dass "das niemand macht" und dass "das in C++ nicht üblich ist" usw.
Aber für uns (Benutzer) ist es einfacher, universeller, vernünftiger und logischer, den Konstruktor MySecond() als ein Gebiet der Klasse MySecond und nicht MyFirst zu betrachten. Überlegen Sie, was einfacher ist: virtuelle Funktionen in Konstruktoren funktionieren zu lassen oder wichtige und schwerwiegende Einschränkungen für Konstruktorcode in der Dokumentation an mehreren Stellen zu formulieren und trotzdem regelmäßig wichtige und schwerwiegende Nachrichten von Neulingen an den Service Desk und das Forum "über die virtuellen Fehler in Konstruktoren" zu erhalten...
Der Tensor-Operator mit Strukturen führt zu einem Code-Generierungsfehler (wenn Sie ihn durch if ersetzen, funktioniert es)
Ich erhalte regelmäßig den Fehler 4401
ERR_HISTORY_NOT_FOUND
Der folgende Indikatorcode
führt sofort beim Start zu einem Fehler (wenn nicht bei D1). Oder besser gesagt, einmal nach dem Start des Terminals und dem Öffnen des Charts - um den Indikator zu setzen, werden wir einen Fehler erhalten. Wenn das Terminal nicht geschlossen ist, tritt ein solcher Fehler beim Start nicht auf.
Aber nach einiger Zeit (ein paar Stunden - 2 Stunden waren genug für mich) werden wir sehen, dass wir den Fehler auf dem bereits geöffneten Diagramm erhalten werden. (Ich habe es auf m30 laufen lassen)
Hallo, meine Herren Entwickler!
Können wir Änderungen im MQL5-Compiler vornehmen, um zumindest eine Warnung zu erhalten?
für Fehler dieser Art im Code.
if(Flag_Exitl=true) {break;}
Die Vergleichsbedingung ist hier nicht korrekt (sie sollte == sein), weshalb es immer zu einem Bruch kommen wird.
Wie lässt sich diese Situation im Compiler beheben (falls das überhaupt möglich ist), damit ich beim Schreiben von Code weniger holprig vorankomme?
(Ich dachte, es würde nicht funktionieren, da es scheint, dass Zuweisung und Vergleich in if getrennt werden, dann wird die Frage entfernt).
Hallo, meine Herren Entwickler!
Ist es möglich, den MQL5-Compiler so zu ändern, dass er zumindest eine Warnung ausgibt?
für Fehler dieser Art im Code.
if(Flag_Exitl=true) {break;}
Die Vergleichsbedingung ist nicht korrekt (sie sollte == sein), deshalb wird es immer ein Bruch sein.
Wie lässt sich diese Situation im Compiler beheben (falls überhaupt möglich), so dass ich beim Schreiben von Code weniger holprig arbeiten kann?
(Ich habe gedacht, es wird nicht funktionieren, ich kann die Zuordnung und den Vergleich in "wenn" aufteilen, damit die Frage entfernt wird).
Die Bedingung kann falsch geschrieben sein, aber sie ist in MQL5 erlaubt.
Ich werde übersetzen, was Sie codiert haben: Flag_Exitl Variable muss auf true gesetzt werden und dann überprüft, wenn Flag_Exitl wahr ist, dann brechen.
Die Abfolge der Aktionen ist genau wie folgt.
Ich verstehe nicht ganz, wie man mit Puffern arbeitet, die nicht auf dem Bildschirm angezeigt werden müssen.
Aus irgendeinem Grund wird der folgende Code angezeigt
1) zeichnet nichts
2) beide Puffer werden als Label1 bezeichnet
obwohl sie die richtigen Daten enthalten
Hallo. Vielleicht schreibe ich in die falsche Richtung, aber ich hoffe, Sie können mir den richtigen Weg weisen. Wohin mit einer Frage zur Web-API für mt5? )
Ich werde versuchen, die Situation zu erklären, nur für den Fall. Ich habe МТ Manager und WEB API mit php... Die Rechnung in russischer Sprache wird erstellt, die Daten werden gesendet und sogar im МТ-Manager angezeigt, aber es gibt ein Problem - die Daten im МТ-Manager werden in Unicode angezeigt ("044404300c0438043b0438044f" - so sieht der Benutzername aus). Beim Senden von Daten wird nichts kodiert oder dekodiert, vom MT-Client wird alles normal erstellt... Zumindest in welche Richtung soll man schauen? (