Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 602
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
In einem Indikator oder in einem EA/Skript?
Yuri Evseenkov:
fromme2you:
Eine weitere Frage: Wie kann man den Entwickler von MT4 und MQL Code-Ausführungsumgebung betonen, so dass er (sie) setzen Geist und Hand in die Entwicklung einer Sprache, um Ausnahmen, wie in meinem Beispiel oder ähnlich in der Bedeutung zu behandeln?
Wenden Sie sich an Servicedesk, erstellen Sie einen Thread/eine Umfrage im Forum.
Es ist noch gar nicht so lange her, dass MT4 zu Grabe getragen wurde. Sie haben keinen klaren Blick auf den Markt, sie haben einen klaren Blick auf die Regulierung des Marktes.
Siehe den heutigen Beitrag von Renat:
...
DieEntwicklung von MT4 wird eingestellt und es wird nur noch Korrekturen und Kosmetik geben.
Hallo. Können Sie mir bitte sagen, wie ich dieses Problem lösen kann? Ich muss die Eröffnungskurse der Balken zu einem bestimmten Zeitpunkt, z. B. um 01:00 Uhr, finden, indem ich z. B. die letzten 50 Balken analysiere. Ich bin mir nicht sicher, wie ich diese Aufgabe in mql5 angehen soll.
Ob durch Berechnung des aktuellen Datums + Addition der benötigten Zeit dazu und anschließende Addition von vierundzwanzig Stunden, diese Methode funktionierte auf mql4.
Soweit ich verstanden habe, hat mql5 spezielle Strukturen mit Zeitausgabe, aber aus irgendeinem Grund kann ich sie nicht verwenden.
Vielen Dank im Voraus für die Antwort.
Ich wäre sehr dankbar, wenn mir jemand ein wenig Code zukommen lassen könnte, um den Denkprozess zu verstehen.Im Indikator.
Zum besseren Verständnis empfehle ich Ihnen, sich zunächst die Nummerierung der Balken anzusehen. Zunächst müssen wir genau verstehen, wie der Balken ganz rechts im MQL5-Indikator nummeriert wird.
Dazu fügen Sie den folgenden Kommentar in den Indikator in OnCalculate ein:
Dieser Code wird dieses Ergebnis liefern:
Das heißt, standardmäßig hat der ganz rechte Balken in MQL5-Indikatorfeldern einen Index gleich "rates_total-1".
Um auf Ihre Frage zurückzukommen: Sie müssen die letzten 50 Takte nehmen und sie durchgehen. Und analysieren Sie die Eröffnungszeit des Balkens (das time[]-Array), wenn die Zeit des Balkens gleich der angegebenen Zeit ist, merken Sie sich den Index des Balkens. Dann erhalten Sie den offenen Preis aus dem open[]-Array mit diesem Index.
Es sieht ähnlich aus wie dieses:
Zum besseren Verständnis empfehle ich Ihnen, sich zunächst die Nummerierung der Balken anzusehen. Das heißt, Sie sollten zunächst genau verstehen, wie der Balken ganz rechts im MQL5-Indikator nummeriert ist.
Dazu fügen Sie den folgenden Kommentar in den Indikator in OnCalculate ein:
Dieser Code wird dieses Ergebnis liefern:
Das heißt, standardmäßig hat der ganz rechte Balken in MQL5-Indikatorfeldern einen Index, der gleich "rates_total-1" ist.
Um auf Ihre Frage zurückzukommen: Sie müssen die letzten 50 Takte nehmen und sie durchgehen. Und analysieren Sie die Eröffnungszeit des Balkens (das time[]-Array), wenn die Zeit des Balkens gleich der angegebenen Zeit ist, merken Sie sich den Index des Balkens. Dann rufen Sie den offenen Preis aus dem Array open[] ab.
Es sieht ungefähr so aus
Karputov Vladimir, vielen Dank. Ich weiß das wirklich zu schätzen. Ich denke, dass mql5 einen flexibleren Zugang zu Zeitreihen hat, aber es ist ein bisschen kompliziert für "Neulinge" in der Programmierung. :))
Es ist eine Frage der Gewohnheit. Dann werden Sie feststellen, dass alles strukturiert, einfach und korrekt ist.
Eine andere Frage. Die Parameter
Ich denke, sie sind für das Paar verantwortlich, auf das der Indikator angewendet wird. Es ist also unmöglich, die gleichen Informationen über ein anderes Währungspaar zu erhalten? Mit anderen Worten, die universellere Lösung ist es, die gleichen Arrays von OCHL nur durch die Funktion Kopieren zu erstellen...?Eine andere Frage. Parameter
Ich verstehe, dass sie für das Paar, auf das der Indikator angewendet wird, verantwortlich sind. Und mit ihrer Hilfe die gleichen Informationen über ein anderes Währungspaar herauszuziehen ist unmöglich? Die universellere Lösung ist also, die gleichen Arrays OCHL nur durch die Funktion Kopieren zu erstellen...?Beim Zugriff auf fremde Zeichen gibt es einige Feinheiten, die Sie verstehen und beachten müssen:Organisieren Sie den Datenzugriff. Mit anderen Worten: Wenn Sie die Zeitreihendaten eines anderen Symbols anfordern, müssen Sie zunächst sicherstellen, dass diese Daten aufbereitet wurden und vorhanden sind. Nur so können Sie sicher sein, dass die Daten, die Sie von dem fremden Zeichen abfragen, korrekt sind.
Ich hab's. Ich danke Ihnen.
Eine andere Frage ist, ob Sie die Werte in der Funktion Print() immer in den Typ String konvertieren. Was ist der Zweck dieser Maßnahme? Ohne Übersetzung werden die Typen int, double usw. in der Funktion Print() auf genau dieselbe Weise angezeigt.
Ich hab's. Ich danke Ihnen.
Eine weitere Frage: Konvertieren Sie die Werte in der Funktion Print() immer in den Typ String? Was ist der Zweck dieser Maßnahme? Ohne Übersetzung werden die Typen int, double usw. in Print() auf genau dieselbe Weise angezeigt.
Die Art und Weise, wie eine Zahl im Computerspeicher gespeichert wird, und die Art und Weise, wie sie ausgegeben wird, sind zwei große Unterschiede. Insbesondere bei Fließkommazahlen ist es immer besser, die Anzahl der Nachkommastellen zu begrenzen.
Deshalb versuche ich immer, die Ausgabe korrekt zu formatieren - mitIntegerToString undDoubleToString.
Die Art und Weise, wie eine Zahl im Computerspeicher gespeichert wird, und die Art und Weise, wie sie ausgegeben wird, sind zwei große Unterschiede. Insbesondere bei Fließkommazahlen ist es immer besser, die Anzahl der Nachkommastellen zu begrenzen.
Deshalb versuche ich immer, die Zahlenausgabe mitIntegerToString undDoubleToString richtig zu formatieren.
Ich danke Ihnen für Ihre Antworten und Ihre Geduld.
Vladimir, ich bin dich wahrscheinlich leid :) Aber die Fortschritte bei den Grundlagen gehen sehr langsam voran. Ich habe versucht, eine Testaufgabe mit der Funktion Kopieren durchzuführen... Der Indikator ist nicht gezeichnet, aber es gibt Zahlen in Printe... Ich verstehe gar nichts.