Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1285
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
Bei 1440 Aufträgen pro Tag sollte eine Überprüfung zu Beginn der Minute oder einfacher beim Erscheinen des Minutenbalkens erfolgen. Und an dieser Stelle zu öffnen. Sie haben es nicht, also öffnet der EA eine Position bei jedem Tick, was an sich eine strenge Bedingung ist, entsprechend der Bedingung auf unserem Symbol beim aktuellen Kurs. Diese Bedingung kann nicht erfüllt sein, und die Zecken werden übersehen. Und irgendwann wird ein kritischer Fehler auftreten.
Auch die Art der Auftragsausführung (Auftrag, einen Handel durchzuführen, um eine Position zu schaffen) Alles oder nichts.
Das verstehe ich. Vielen Dank für die Hilfe.
Ich dachte auch, dass es für meinen EA schwierig war, so viele Aufträge zu eröffnen. Ich habe versucht, die Anzahl der Aufträge mit diesem Code zu begrenzen
Das heißt, öffnen Sie eine Bestellung erst um 10:00 Uhr. Das Ergebnis ist jedoch das gleiche.
2020.10.27 10:25:17.548 Core 1 272 Mb Speicher verwendet, davon 36 Mb History-Daten, 64 Mb Tick-Daten
Was mache ich falsch?
Ich habe den von mir hinzugefügten und geänderten Code eingefärbt
Dies steht in der Protokolldatei
FD 0 10:57:05.453 Core 1 agent process started on 127.0.0.1:3000
CS 0 10:57:05.453 Kern 1 Verbindung zu 127.0.0.1:3000
JD 0 10:57:05.953 Kern 1 verbunden
OD 0 10:57:05.975 Core 1 autorisiert (Agent Build 2650)
JL 0 10:57:05.980 Tester EURUSD,M1 (Alpari-MT5-Demo): Test von experts\GRAAL.ex5 von 2020.09.01 00:00 bis 2020.09.10 00:00
ON 0 10:57:05.997 Core 1 Gemeinsame Synchronisierung abgeschlossen
CJ 0 10:57:06.223 Tester Qualität der analysierten Historie ist 100%
LM 0 10:57:06.248 Core 1 MetaTester 5 gestartet auf 127.0.0.1:3000
EJ 0 10:57:06.248 Core 1 Initialisierung beendet
LS 0 10:57:06.248 Core 1 login (build 2650)
KO 0 10:57:06.248 Core 1 4372 Bytes Kontoinformationen geladen
LI 0 10:57:06.248 Core 1 1482 Bytes an Testerparametern geladen
FN 0 10:57:06.248 Core 1 1724 Bytes Eingabeparameter geladen
OK 0 10:57:06.248 Core 1 423 Bytes der Symbolliste geladen (72 Symbole)
HO 0 10:57:06.248 Core 1 Experten-Datei hinzugefügt: Experts\GRAAL.ex5 13680 Bytes geladen
CP 0 10:57:06.248 Core 1 4077 Mb verfügbar, 50 Blöcke für Tickgenerierung eingestellt
DI 0 10:57:06.248 Core 1 Gewinn in Pips berechnen, Ersteinzahlung 10000, Hebelwirkung 1:100
LP 0 10:57:06.248 Core 1 erfolgreich initialisiert
RI 0 10:57:06.248 Core 1 Insgesamt 15 Kb an Initialisierungsdaten empfangen
DN 0 10:57:06.248 Kern 1 Intel Core i5-6400 @ 2.70GHz, 7883 MB
IG 0 10:57:06.248 Core 1 EURUSD: zu synchronisierendes Symbol
RS 0 10:57:06.248 Core 1 EURUSD: Symbol synchronisiert, 3720 Bytes Symbolinformationen erhalten
OL 0 10:57:06.248 Core 1 EURUSD: Laden von 27 Byte Verlaufsdaten zur Synchronisierung in 0:00:00.003
EK 0 10:57:06.248 Core 1 EURUSD: Historie synchronisiert von 2019.01.02 bis 2020.10.23
LK 0 10:57:06.248 Core 1 EURUSD,M1: History Cache für 628432 Bars zugewiesen und enthält 619175 Bars von 2019.01.02 06:00 bis 2020.08.31 23:59
LH 0 10:57:06.248 Core 1 EURUSD,M1: Historie beginnt am 2019.01.02 06:00
LN 0 10:57:06.248 Core 1 EURUSD,M1 (Alpari-MT5-Demo): OHLC-Balkenzustände werden erzeugt. OnTick-Ausführung nur zu Beginn des Balkens
JM 0 10:57:06.248 Core 1 EURUSD,M1: Test von experts\GRAAL.ex5 von 2020.09.01 00:00 bis 2020.09.10 00:00 mit Eingaben gestartet:
LS 0 10:57:06.248 Kern 1 StopLoss=30
PL 0 10:57:06.248 Kern 1 TakeProfit=100
FJ 0 10:57:06.248 Kern 1 Los=0.1
DP 0 10:57:06.248 Core 1 Endsaldo 10000.00 Pips
EE 0 10:57:06.248 Core 1 EURUSD,M1: 39553 Ticks, 10068 Balken erzeugt. Die Umgebung wurde um 0:00:00.031 synchronisiert. Test bestanden in 0:00:00.247 (einschließlich Ticks Vorverarbeitung 0:00:00.016).
DE 0 10:57:06.248 Core 1 EURUSD,M1: Gesamtzeit von der Anmeldung bis zum Stoppen des Tests 0:00:00.278 (einschließlich 0:00:00.031 für die Synchronisierung der historischen Daten)
NQ 0 10:57:06.248 Core 1 272 Mb Speicher verwendet, davon 36 Mb Verlaufsdaten, 64 Mb Tickdaten
KE 0 10:57:06.248 Core 1 Protokolldatei "C:\Users\a1960\AppData\Roaming\MetaQuotes\Tester\36A64B8C79A6163D85E6173B54096685\Agent-127.0.0.1-3000\logs\20201027.log" geschrieben
OS 0 10:57:06.260 Core 1 Verbindung geschlossen
Bitte um Rat!
Warum wird die Serverzeit nicht aktualisiert, wenn neue Ticks eintreffen?
In dem Moment, in dem EA startet, funktioniert alles wie es sollte, aber dann geht die Zeit, aber der neue Wert der aktuellen Minute kommt nicht in die Variable.
D.h. der Expert Advisor arbeitet in Abhängigkeit von der in der Variablen int M = TimeMinute(TimeCurrent()) erhaltenen Zahl;
Diese Codezeile stammt aus der Referenz, und sie funktioniert nicht.
Ich starte sie z.B. um 12 Uhr-die vom Server zurückgegebeneaktuelle Uhrzeit entspricht der Uhrzeit in der Variablen, aber dann bleibt die Variable auf 12 Uhr stehen, obwohl es schon 15-20 Minuten auf der Uhr sind
Der Code ist völlig besser, genauer gesagt, wo Sie die Funktion erstellen und in welcher Funktion (OnInit, OnTick, OnTime) den Wert von Minuten erhalten und die Druckfunktion aufrufen. Wenn in OnInit oder außerhalb der Terminal-Funktionsfelder, das ist, wie es sein sollte. Bei OnTick wird bei jedem Tick gedruckt und der Wert mit einer neuen Minute aktualisiert.
Valeriy Yastremskiy:
Der Code ist völlig besser, genauer gesagt, wo Sie die Funktion erstellen und in welcher Funktion (OnInit, OnTick, OnTime) Sie den Wert von Minuten erhalten und die Druckfunktion aufrufen. Wenn in OnInit oder außerhalb der Terminal-Funktionsfelder, das ist, wie es sein sollte. Bei OnTick wird bei jedem Tick gedruckt und der Wert mit einer neuen Minute aktualisiert.
Nun, hier ist der vollständige Code. In der void-Funktion OnTick() wird sie gleich zu Beginn durch die erste auszuführende Zeile ausgelöst.
Sie wird nur zum Zeitpunkt der Neukompilierung oder des Anhängens an den Zeitplan/Löschungsfeld/ ausgelöst. In der übrigen Zeit enthält die Variable M den Wert der Minute, der beim ersten Durchlauf des EA ermittelt wurde.
Nun, der Code hier ist alles, was es zu tun gibt. Die void OnTick() wird ganz am Anfang durch die erste auszuführende Zeile ausgelöst.
Sie wird nur zum Zeitpunkt der Neukompilierung oder des Beitritts zum Graphen/Löschungsfeld/ ausgelöst. In der übrigen Zeit enthält die Variable M den Wert der Minute, der beim ersten Durchlauf des EA ermittelt wurde.
Verstanden, danke!
Ich hätte
in den Hauptteil der Funktion einfügen, anstatt den Wert M vor der Funktion zuzuweisen
Verstanden, danke!
Ich hätte
in den Körper der Funktion einfügen, anstatt den Wert M davor zuzuweisen.
Sie können dies auf unterschiedliche Weise tun. Lesen von globalen und lokalen Variablen und deren Sichtbarkeit.
Nachmittags. Versuchen Sie, den Winkel der Trendlinie aus dem Winkel zu ermitteln. Hier ist der Code:
Winkel ist immer 0. Unabhängig davon, ob Sie Methoden der Standardbibliothek oder integrierte Funktionen verwenden. Zugleich wird die Grenze gezogen. Was ist los? Wie erhält man den Winkel?
Nachmittags. Versuchen Sie, den Winkel der Trendlinie aus dem Winkel zu ermitteln. Hier ist der Code:
Winkel ist immer 0. Unabhängig davon, ob Sie Methoden der Standardbibliothek oder integrierte Funktionen verwenden. Zugleich wird die Grenze gezogen. Was ist los? Wie erhalte ich den Winkel?
https://www.mql5.com/ru/forum/103591
Ich verstehe, aber wie berechnet man den Winkel?
https://www.mql5.com/ru/forum/103591
Ich verstehe, aber wie berechnet man den Winkel?
Du bist ein Komiker.
Wem mache ich etwas vor?
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Alle Fragen von Neulingen auf MQL4 und MQL5, jede Hilfe und Diskussion von Algorithmen und Codes
Nikolai Semko, 2020.10.26 00:34
Sie sollten keine Angst vor Geschwindigkeit haben. Es ist nur eine Bedingung für die Typkonvertierung.
Als eine Variante der Winkeldefinitionsfunktion:
Nach MT5 ist das Gefühl von MT4 einfach furchtbar. Der Zugang zur Geschichte ist irgendwie entschärft. Ich spreche nicht einmal von den Zecken.
Können Sie mir bitte sagen, ob diese Schriftauswahl im Indikator möglich ist?