Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1310

 

MqlRates rates[];

rates[0].open> rates[0].close

Bitte geben Sie an, wie Sie diese Bedingung für den aktuellen Zeitrahmen und für mehrere Zeitrahmen gleichzeitig überprüfen können, zwei, drei, fünf. Wie wirkt sich das auf die Leistung der Tests aus? Ich würde mich über einen Link zu einem Multiframe EA oder einem MT5 Indikator freuen.

 
Николай К:

MqlRates rates[];

rates[0].open> rates[0].close

Bitte geben Sie an, wie Sie diese Bedingung für den aktuellen Zeitrahmen und für mehrere Zeitrahmen gleichzeitig überprüfen können, zwei, drei, fünf. Wie wirkt sich das auf die Leistung der Tests aus? Ich würde mich über einen Link zu einem Multiframe EA oder einem MT5 Indikator freuen.

Array rates_tf_**[] für jede TF und CopyRates auch für jede TF in das entsprechende Struktur-Array. Wie sich das auf die Geschwindigkeit der Tests auswirkt... Das ist eine andere Frage. Aber es gibt nichts anderes. Oder vielleicht weiß ich es einfach nicht...
 


DER KODEX

FileWrite(file_handle, Period());

auf einem 5-Minuten-Zeitrahmen zeigt es 5

AF 15 min =15

Und bei TF 1h =1536

4ч = 16388

Warum ist das so?

 
Aleksei Skrypnev:


DER KODEX

auf einem 5-Minuten-Zeitrahmen zeigt es 5

AF 15 min =15

Und bei TF 1H =1536.

Warum ist das so?

Zuerst schauen wir unsPeriod() an

...Der Wert kann einer der Werteder AufzählungENUM_TIMEFRAMESsein:

Kennung

Beschreibung

PERIOD_CURRENT

Aktueller Zeitraum

PERIOD_M1

1 Minute

PERIOD_M2

2 Minuten

PERIOD_M3

3 Minuten

PERIOD_M4

4 Minuten

PERIOD_M5

5 Minuten

PERIOD_M6

6 Minuten

PERIOD_M10

10 Minuten

PERIOD_M12

12 Minuten

PERIOD_M15

15 Minuten

PERIOD_M20

20 Minuten

PERIOD_M30

30 Minuten

PERIOD_H1

1 Stunde

PERIOD_H2

2 Stunden

PERIOD_H3

3 Stunden

PERIOD_H4

4 Stunden

PERIOD_H6

6 Stunden

PERIOD_H8

8 Stunden

PERIOD_H12

12 Stunden

PERIOD_D1

1 Tag

PERIOD_W1

1 Woche

PERIOD_MN1

1 Monat


Anmerkung: "einer der Werte von PERIOD ...". Das heißt, es kann PERIOD_H6 oder PERIOD_M1 oder ein beliebiger Wert aus PERIOD sein. Aber die interne Darstellung der Aufzählung sollte niemanden interessieren. Heute ist es die "15" und morgen kann es die "15478899662" sein. Aber das sollte Ihnen als Programmierer völlig egal sein - Sie sollten mit Werten (PERIOD_M4, PERIOD_M15 ...) arbeiten, nicht mit der internen Darstellung.

Документация по MQL5: Проверка состояния / Period
Документация по MQL5: Проверка состояния / Period
  • www.mql5.com
Period - Проверка состояния - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

Erster Blick aufPeriod()

...Der Wert kann einer derAufzählungswerte vonENUM_TIMEFRAMESsein:



Anmerkung: "einer der Werte von PERIOD ...". Es kann also PERIOD_H6 oder PERIOD_M1 oder ein beliebiger Wert aus der Aufzählung sein. Aber die interne Darstellung der Aufzählung sollte niemanden interessieren. Heute ist es die "15" und morgen kann es die "15478899662" sein. Aber das sollte Ihnen als Programmierer völlig egal sein - Sie müssen mit Werten arbeiten (PERIOD_M4, PERIOD_M15 ...), nicht mit der internen Darstellung.

Ich dachte, es würde etwas Klareres in die Datei geschrieben werden)

Können Sie nicht auf einfache Weise etwas Eindeutigeres (wie Perod_H1) in eine Datei schreiben?

 
Aleksei Skrypnev:

Ich dachte, es würde etwas klareres in die Datei geschrieben werden)

Etwas Verständlicheres (wie Perod_H1) kann man nicht auf einfache Weise in eine Datei schreiben, oder?

Wenn Sie es sehr deutlich machen wollen, schreiben Sie es als Text"PERIOD_H1" oder ähnliches in die Datei.

 

Guten Tag an alle! Was für ein Problem! Ich testete einen EA auf MT4, testete es den ganzen Tag lang, am Ende sah ich, dass am Abend gab es keinen Speicher auf der Festplatte links, erkannte ich sofort, dass es wegen der Tests war, beschloss ich, es zu bereinigen, ging auf die MetaQuotes-Ordner in der Windows , und löschte eine Menge Dinge gibt, als Ergebnis alle Plattformen waren verloren, sowohl MT4 und MT5, 10 Stück insgesamt, sie laufen, aber sie sind völlig "sauber" - keine Indikatoren aus dem Markt, keine EAs, nichts! ich brauchte wirklich einen Berater in einem mt5 Terminal, ich habe keine Kopie gespeichert, keine weiteren Aktivierungen, was soll ich tun?

Ich beschloss, das Programm zu verwenden, um gelöschte Dateien wiederherzustellen. Es gelang mir, die EA-Datei wiederherzustellen, indem ich sie während des Updates in den Expertenordner legte , und das Terminal sieht sie einfach nicht, und ich kann sie nicht vom Market-Konto herunterladen, es sagt, die Installation sei fehlgeschlagen!

Dateien:
 

Bitte helfen Sie mir bei einem Problem!

Ich lerne gerade, wie man Code schreibt, also habt bitte Nachsicht mit meinen mangelnden Kenntnissen.

Ich brauche Hilfe, um die FunktionOnChartEvent zu verstehen, die grafische Objekte im Chart nach einem Wechsel des Zeitrahmens oder einer Änderung der Einstellungen im Indikatormenü aktualisiert. Im Falle des Schließens des Indikators werde ich alle grafischen Objekte dieses Indikators vollständig aus dem Chart löschen.

Ich verstehe, dass Sie die grafischen Objekte zuerst löschen und dann neu erstellen müssen. Aberwenn die Objekte gelöscht wurden, gibt es keinen Zugriff auf ihre Eigenschaften und wie können diese Objekte dann neu erstellt werden? ....... Oder verstehe ich es vielleicht nicht? Oder gibt es vielleicht einen anderen Weg - die Aktualisierung von grafischen Objekten im Diagramm?

Bitte schreiben Sie ein Beispiel mit Kommentaren, wie man es macht.


 
Sprut 185:

Bitte helfen Sie mir bei einem Problem!

Ich lerne gerade, wie man Code schreibt, also habt bitte Nachsicht mit meinen mangelnden Kenntnissen.

Ich brauche Hilfe, um die FunktionOnChartEvent zu verstehen, die grafische Objekte im Chart nach einem Zeitrahmenwechsel oder einer Änderung der Einstellungen im Indikatormenü aktualisiert. Im Falle des Schließens des Indikators werde ich alle grafischen Objekte dieses Indikators vollständig aus dem Chart löschen.

Ich verstehe, dass Sie die grafischen Objekte zuerst löschen und dann neu erstellen müssen. Aberwenn die Objekte gelöscht wurden, gibt es keinen Zugriff auf ihre Eigenschaften und wie können diese Objekte dann neu erstellt werden? ....... Oder verstehe ich es vielleicht nicht? Oder gibt es vielleicht einen anderen Weg - die Aktualisierung von grafischen Objekten im Diagramm?

Bitte schreiben Sie ein Beispiel mit Kommentaren, wie man es macht.


Betrachten Sie es nicht als unhöflich, aber es gibt alle Beispiele in der Dokumentation. Sie müssen nur auf die ObjectSet***-Funktionen achten, die die Parameter eines grafischen Objekts ändern.

Документация по MQL5: Графические объекты / ObjectSetDouble
Документация по MQL5: Графические объекты / ObjectSetDouble
  • www.mql5.com
ObjectSetDouble - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Ich will nicht unhöflich sein, aber die Dokumentation enthält alle Beispiele. Sie müssen nur auf die ObjectSet***-Funktionen achten, die die Parameter des grafischen Objekts ändern.

Wir danken Ihnen für Ihre Teilnahme.

Leider war die ObjectSet***-Funktion für meine Aufgabe nicht geeignet.

Ich habe das Problem selbst gelöst, indem ich die Funktion OnDeinit() verwendet habe.
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll (0, -1, -1);
  }

Jetzt funktioniert alles wie es soll.