Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1190
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
MetaQuotes Demo-Server schließen
MetaQuotes Software Corp.
4. März 2009
Am 5. April 2009 wird der Server "demo.metaquotes.net" abgeschaltet. Das Geschichtszentrum mit der winzigen Geschichte wird jedoch seine Arbeit fortsetzen.
Seit diesem Tag weigert sich unser Unternehmen, den Demoserver zu benutzen. Heutzutage ist die Zahl der Unternehmen, die die MetaTrader 4-Plattform betreiben, so hoch, dass wir keine Notwendigkeit sehen, einen eigenen Server zu unterhalten.
Dies ist eine Art Antiquität (ein anderer Server wird erwähnt). Das letzte Mal wurde vor einem Monat auf MetaQuotes-Demo ein neues Demokonto normal erstellt.
Wenn der Server entfernt wurde, warum wird er dann im Kontoeröffnungsassistenten angezeigt und angepiept? Der Stau tritt nur beim letzten Schritt auf.
Wenn der Indikator zum ersten Mal auf historische Daten zugreift und nicht genügend lokale Daten vorhanden sind, beginnt das Laden der Daten und die Funktion gibt einen Fehler zurück.
Das verstehe ich sehr gut. Wenn es um unzureichende Takte in der Historie ginge, würden beide Funktionen 0 zurückgeben. Eine der Funktionen gibt jedoch 0 zurück, während die andere korrekt die Anzahl der Takte in der Historie zurückgibt. Außerdem werden sie nacheinander aufgerufen:
Nur im ersten Fall werden die Daten aus den vorbereiteten Prämembers (Symbol und Timeframe) der Loader-Klasse (korrekt initialisiert) entnommen, im zweiten Fall jedoch aus den Funktionen Symbol() und Period() (die genau die gleichen Werte zurückgeben, wie sie in Symbol und Timeframe stehen). Die Werte der Variablen sind mit denen der Funktionen identisch (ich habe es überprüft). Aber es ist nicht klar, wo iBars(Symbol, Zeitrahmen) mit absolut korrekten Symbolen und Zeitrahmen durcheinander kommt. Während iBars(Symbol(), Period()) keinen Fehler macht. Also habe ich beschlossen, dass es ein Fehler im Terminal selbst oder eine fehlerhafte Kompilierung des Quellcodes sein muss.
Ich verstehe das sehr gut. Wenn es um das Fehlen von Takten in der Historie ginge, würden beide Funktionen 0 zurückgeben, aber so wie es ist, gibt eine Funktion 0 zurück, während die andere korrekt die Anzahl der Takte in der Historie zurückgibt. Außerdem werden sie nacheinander aufgerufen:
Nur im ersten Fall werden die Daten aus den vorbereiteten Prämembers (Symbol und Timeframe) der Loader-Klasse (korrekt initialisiert) entnommen, im zweiten Fall jedoch aus den Funktionen Symbol() und Period() (die genau die gleichen Werte zurückgeben, wie sie in Symbol und Timeframe stehen). Die Werte der Variablen sind mit denen der Funktionen identisch (ich habe es überprüft). Aber es ist nicht klar, wo iBars(Symbol, Zeitrahmen) mit absolut korrekten Symbolen und Zeitrahmen durcheinander kommt. Während iBars(Symbol(), Period()) keinen Fehler macht. Also habe ich beschlossen, dass es irgendwo einen Fehler in der Bedienung des Terminals gibt.
Schreiben Sie es nun so, wie Igor es empfohlen hat:
Und vergessen Sie nicht, dass dies ein Klassenkonstruktor ist, der vor der Initialisierung aufgerufen wirdIch verstehe das sehr gut. Wenn es um das Fehlen von Takten in der Historie ginge, würden beide Funktionen 0 zurückgeben, aber so wie es ist, gibt eine Funktion 0 zurück, während die andere korrekt die Anzahl der Takte in der Historie zurückgibt. Und sie werden einer nach dem anderen aufgerufen:
Sie denken sich eine Geschichte aus
und dann beschließt man, es als Forderung zu schreiben, und dann die Frage
Was besagt die 4401-Fehlerhilfe?
Was habe ich geschrieben?
Kennen Sie den Unterschied zwischen fehlenden Balken und einem nicht fertigen Diagramm?
Sie haben die Situation nach dem Neustart des Terminals mit dem Start des Indikators, und Sie fordern die Daten in der globalen Initialisierung des MQL-Programms (Klassenkonstruktor), die vor OnInit() ausgeführt wird
weg, Sie schreiben schneller als Sie lesen, suchen Sie das Forum 4401 - alle Antworten
Ich berechne das Los wie folgt
Sie steht am Anfang des EA... und ich habe sie ganz ans Ende des Codes gesetzt
Wenn die Lots-Variable in der OnTick-Funktion aufgerufen wird, findet der EA sie und berechnet sie neu.
So kann es nicht sein. Die Deklaration und die Initialisierung sind im Gange, und der VariablenLots wird ein Ausdruck zugewiesen.
Diese Zuweisung kann nur einmal beim Start erfolgen, es kann nicht sein, dass ein Ausdruck bei jedem Zugriff aufLots automatisch zugewiesen wird. Ich habe nicht gehört, dass mql so etwas kann.
So kann es nicht sein. Sie haben eine Deklaration und eine Initialisierung, und ein Ausdruck wird der VariablenLots zugewiesen.
Diese Zuordnung kann einmal beim Start erfolgen, es kann nicht sein, dass bei jedem Zugriff aufLots automatisch ein Ausdruck zugeordnet wird. Ich habe nicht gehört, dass mql so etwas kann.
Ich habe geprüft, ob sich bei einer Änderung des Saldos auch die Partie ändert.
Wow, das werde ich mir ansehen. Ich weiß, dass man Variablen mit Array-Elementen mit Funktionen initialisieren kann, aber ich wusste nicht, dass sich das automatisch ändert, ich glaube auch nicht, dass es so etwas in C++ gibt, ich werde das später überprüfen.
Und vergessen Sie nicht, dass dies ein Klassenkonstruktor ist, der vor der Initialisierung aufgerufen wird
Dies ist der Fall, wenn das Objekt automatisch ist. Aber ich erstelle sie mit dem Schlüsselwortnew (in OnInit()) und lösche sie mit dem Schlüsselwort delete (in OnDeinit()). Das heißt, ich verwende einen Zeiger auf ein Objekt vom Typ Loader. Aber ich denke, Sie wissen über all diese Details Bescheid. Deshalb wird der Lader in OnInit() erstellt und es kann hier kein Fehler auftreten.
Wenn Sie das Vertauschen von Funktionen meinen, habe ich es ausprobiert, und das Ergebnis ist das gleiche. Nur die Reihenfolge der Nachrichten ist anders :)
Ergebnis:
2020.06.24 23:10:48.568 Loader::Loader Symbol: EURUSD Zeitrahmen: PERIOD_H1
2020.06.24 23:10:48.568 Loader::Loader Bars (2): 140435
2020.06.24 23:10:48.568 Loader::Loader Bars: 0
2020.06.24 23:10:48.568 Loader::Loader Fehler: 4401
Sie haben sich eine Geschichte ausgedacht.
und beschloss dann, daraus eine Beschwerde zu machen.
Keine Ansprüche! Und was ist, wenn ich den Quellcode zur Verfügung stelle und sogar die Abfolge der Aktionen beschreibe, um die Funktion zu testen? Offensichtlich haben Sie mich missverstanden ...
Und Sie fragen nach Daten in der globalen Initialisierung des MQL-Programms (Klassenkonstruktor), die vor OnInit() ausgeführt wird
weg, du schreibst schneller als du liest,suche im Forum 4401 - alle Antworten
Sie sollte nicht vorOnInit() ausgeführt werden, wie ich in einem früheren Beitrag schrieb. Sie sind es, die nicht aufmerksam lesen, sowohl die Beiträge als auch den Quellcode, den ich zum Testen hinzugefügt habe.
Dies ist schon etwas älter (ein anderer Server wird erwähnt). Mehr als einmal in diesem Jahr, das letzte Mal vor einem Monat auf MetaQuotes-Demo wurde ein neues Demokonto normal erstellt.
Wenn der Server entfernt wurde, warum wird er dann im Kontoeröffnungsassistenten angezeigt und angepiept? Der Stau tritt nur beim letzten Schritt auf.