Fehler, Irrtümer, Fragen - Seite 208

 
Ashes:

Gerade oben haben Sie geschrieben:

Das mag die Absicht gewesen sein, aber... Durchführung eines Feldversuchs (Build 358).

Ich lösche alle Symbole aus dem Ordner "C:\Program Files\MetaTrader 5\Bases\Alpari-Demo\history"

Ich verbinde mich mit Alpari-Demo (Terminal hat 5 offene Charts: EURUSD H1, EURCHF H1, USDJPY H1, GPBUSD H1+M1).

Ein paar Minuten später kann ich das Bild sehen (der Verlauf wird noch heruntergeladen):

Inhalt des Ordners C:\Programme\MetaTrader 5\Bases\Alpari-Demo\history

Vielen Dank für Ihre Nachricht. Wir werden uns das ansehen.
 
Interesting:

...

Wenn ich es richtig verstehe, befindet sich die Größe der Verlaufsdateien im Terminalverzeichnis, das durch den Speicherort des "Arbeitsverzeichnisses" angegeben wird - C:\Programme\MetaTrader 5\Bases\Alpari-Demo\history\EURJPY

Der Tester hat einen eigenen Ordner für diese Daten - C:\Programme\MetaTrader 5\tester\Agent(je nach Anzahl der Agenten)\bases\DC oder ein anderer Broker (Server)\history\....

Wo liegt dann das Problem?

Das Problem ist die mangelnde Bereitschaft, die ursprüngliche Nachricht sorgfältig zu lesen ;)

Es gibt tatsächlich 2 Dateien (2009, 2010) im Tester-Ordner, aber beim ersten Start des Testers für ein bestimmtes Symbol wird die gesamte Historie in den Ordner "x:\Programme\MetaTrader 5\Bases\..." heruntergeladen (wenn sie nicht schon vorher heruntergeladen oder gelöscht wurde), und solange diese unnötigen Informationen nicht bis zum Ende heruntergeladen sind, beginnt der Test nicht.

Es macht mir nichts aus, Daten aus\MetaTrader 5\Bases\ in MetaTrader 5\tester\Agent(nach Anzahl der Agenten)\bases zu duplizieren, da ich weiß, dass es sich dabei um eine Momentaufnahme des Tick-Status handelt, um die absolute Identität der Kurse während der Optimierungsaufzählung zu gewährleisten. Aber warum sollte man Daten hochladen, die im Moment absolut unnötig sind?

 
Ashes:

Das Problem ist die mangelnde Bereitschaft, den ursprünglichen Beitrag sorgfältig zu lesen ;)

Es gibt wirklich 2 Dateien (2009, 2010) im Tester-Ordner, aber beim ersten Start des Testers mit einem bestimmten Symbol wird die gesamte Historie in den Ordner "x:\Programme\MetaTrader 5\Bases\..." heruntergeladen (wenn sie nicht vorher heruntergeladen oder gelöscht wurde), und bis diese unnötigen Informationen gefüllt sind, wird der Test nicht gestartet.

Es macht mir nichts aus, Daten aus\MetaTrader 5\Bases\ in MetaTrader 5\tester\Agent(nach Anzahl der Agenten)\bases zu duplizieren, da ich weiß, dass es sich dabei um eine Momentaufnahme des Tick-Status handelt, um die absolute Identität der Kurse während der Optimierungsaufzählung zu gewährleisten. Aber warum sollte man Daten hochladen, die im Moment absolut unnötig sind?

Ich werde das überprüfen, vielleicht liege ich ja wirklich falsch und es gibt etwas zu bedenken.
 
Renat:
Der Verlauf wird korrekt hochgeladen - das bedeutet, dass es eine Anfrage für 2004 gab. Und bei der Verwendung des Testers wird die gesamte Historie definitiv und korrekt bis zur maximalen Tiefe hochgeladen - das ist eine absolut richtige und bewusste Entscheidung. Schauen Sie sich nur die "unverständlichen" Ausrufe der MT4-Benutzer an, um zu verstehen - wenn wir uns nicht um die Historie kümmern, dann werden die Benutzer nicht einmal in der Lage sein, die Historie zu kontrollieren.

Lesen Sie bitte noch einmal meine Antwort.

Wir laden nicht einfach die gesamte Geschichte herunter und überprüfen sie. Wenn ein Tester verwendet wird, bedeutet dies zwangsläufig (nicht in diesem, sondern im nächsten Test) eine vollständige und bedingungslose Arbeit mit der gesamten Historie, ungeachtet der Tatsache, dass dieser spezielle Test einen kleinen Zeitraum der Historie verwendet. Daher bereitet das Terminal die gesamte Historie des gewünschten Symbols im Voraus vor und prüft sie vollständig auf Tiefe und Richtigkeit. Natürlich wird nur das erforderliche Historienintervall an einen bestimmten Testagenten für einen bestimmten Test weitergegeben/synchronisiert.

Da die Händler dazu neigen, die Regeln für die korrekte Vorbereitung der Testbedingungen nicht zu beachten, versucht das Terminal, die Umgebung so oft wie möglich vorzubereiten und erneut zu testen. In MetaTrader 5 haben wir speziell die Beschränkung des Volumens und der Tiefe der angeforderten Daten aufgehoben, so dass Händler die Daten nicht mehr manuell herunterladen und synchronisieren müssen.

Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
  • www.mql5.com
Получение рыночной информации / SymbolIsSynchronized - Документация по MQL5
 
Interesting:

1. Strategie-Tester

Bei der Prüfung lädt das Prüfgerät nur ein in den Prüfgeräteparametern angegebenes Paar. Wenn die Optimierung für alle Symbole durchgeführt wird, wird jedes Symbol nacheinander geladen.

Wenn der Expert Advisor mehrere Währungen enthält, sollten andere Symbole unabhängig voneinander geladen werden.

Die Idee ist die folgende

а. Der Tester hat eine eigene Marktübersicht, in der zunächst nur das in den Testerparametern angegebene Paar eingestellt ist.

б. Bei Bedarf können mit Select weitere Paare zur Marktübersicht des Testers aus einem EA hinzugefügt werden.

в. Der Strategietester synchronisiert die Daten mit dem Terminal, das sie wiederum mit dem Handelsserver (wo das Konto eröffnet wurde) synchronisiert.

In diesem Fall wird die Historie für den gesamten Testzeitraum geladen + eine bestimmte Menge an Informationen vor dem Testdatum (wenn ich mich nicht irre, 1 Jahr).

в. Wenn der Expert Advisor (Sie) nicht mit der erforderlichen Tiefe zufrieden ist, sollte der Verlauf unabhängig geladen werden. Zum Beispiel im Initialisierungsblock, nach der Überprüfung der Historie und der Synchronisation der Daten.

a. logisch

b. d.h. im allgemeinen Fall ist es UNMÖGLICH, alles herunterzuladen, was der Expert Advisor beim Testen benötigt (es sei denn, Sie laden absolut alles herunter).

c. d.h. vor dem Start des EA im Tester sind die entsprechenden Paare noch nicht in der Marktübersicht des Testers verfügbar (gemäß Punkt a.)

c(2). Die Tiefe ist in Ordnung, ich habe nicht nach mehr gefragt.

Daher ist es logischer (aber auch etwas komplizierter), die Daten gemäß b, c, c(2) herunterzuladen, wenn wir auf die Daten im Expert Advisor zugreifen.

Ich schlage vor, #property tester_symbol hinzuzufügen , um die Tabelle von Punkt a zu füllen (wenn die Idee richtig beschrieben ist), mit der Möglichkeit, mehrere zu setzen, wie #property description. Aber immer noch davon überzeugt, dass in Abwesenheit von #property tester_symbol paging gehen sollte "als Spiel" (mit Ausnahme der Basis-Zeichen), wie ihre REALITÄT hängt ausschließlich von dem Algorithmus des EA selbst.

Interessant:

2. terminal

Hier wird die Historie in ähnlicher Weise gebildet (soweit ich das verstehe, nach den Symbolen, die in der Marktübersicht des Terminals angezeigt werden, unter Berücksichtigung der offenen Charts). Wenn Sie mit dem Terminal zu arbeiten beginnen, wird ein notwendiges Minimum an Historie für die Symbole, mit denen Sie arbeiten, gebildet (ich erinnere mich nicht an die genaue Anzahl der Balken, aber sie wurde wiederholt im Forum erwähnt).

Wenn diese Verlaufstiefe nicht geeignet ist, sollten die Daten manuell geladen werden. Wechseln Sie dazu zum maximalen Monat (eine der empfohlenen Optionen) und laden Sie mit dem linken Bildlauf des Diagramms den Verlauf bis zur maximalen Tiefe.

Es wäre auch wünschenswert, die gewünschte Anzahl von Balken im Diagramm in den Terminalparametern festzulegen.

Wie sich herausstellte, ist es in diesem Fall nicht das notwendige Minimum, sondern die gesamte Geschichte des Symbols, mit dem wir arbeiten.

Eine Beobachtung (der Build hat sich um 360 geändert): Wenn wir die Bedingungen leicht ändern - löschen Sie nicht den gesamten Verlaufsordner nach dem ersten Download und lassen Sie das aktuelle Jahr darin, werden die vorherigen Jahre nicht automatisch ausgetauscht! Bis der Tester mit diesem Zeichen ausgeführt wird.

 
Renat:

Bitte lesen Sie meine Antwort noch einmal.

Es gibt einen Grund, warum wir nicht einfach die gesamte Geschichte herunterladen und erneut testen. Wenn ein Tester verwendet wird, bedeutet dies zwangsläufig (nicht in diesem, sondern im nächsten Test) eine vollständige und bedingungslose Arbeit mit der gesamten Historie, ungeachtet der Tatsache, dass dieser spezielle Test einen kleinen Zeitraum der Historie verwendet. Daher bereitet das Terminal die gesamte Historie des gewünschten Symbols im Voraus vor und prüft sie vollständig auf Tiefe und Richtigkeit. Natürlich wird nur das erforderliche Historienintervall an einen bestimmten Testagenten für einen bestimmten Test weitergegeben/synchronisiert.

Da die Händler dazu neigen, die Regeln für die korrekte Vorbereitung der Testbedingungen nicht zu beachten, versucht das Terminal, die Umgebung so oft wie möglich vorzubereiten und erneut zu testen. In MetaTrader 5 haben wir bewusst die Beschränkung des Volumens und der Tiefe der angeforderten Daten aufgehoben, damit die Händler die Daten nicht manuell herunterladen und synchronisieren müssen.

Das ist nur für "zu haben"! Bei der nächsten Verwendung des Prüfgeräts könnte die Geschichte korrigiert werden (vor allem jetzt, wo es bei verschiedenen Maklerfirmen viele Mängel gibt, von völligem Fehlen bis zu verdrehten Daten).

Der Benutzer begreift nicht, welches Glück ihm widerfahren ist! Fügen Sie in den Einstellungen das Kontrollkästchen "NICHT WOLLEN, ich will es nur, wenn es vom Benutzer oder Experten/Skript/Indikator angefordert wird" hinzu. Und auch "KEINE erzwungenen automatischen MT5-Updates" wollen.

 
Ashes:

a. logisch

b. d.h. im Allgemeinen ist es UNMÖGLICH, alles, was der EA während des Testens benötigt, VOR DEM START aufzupumpen (es sei denn, es ist absolut alles aufgepumpt).

c. d.h. vor dem Start des EA im Tester sind die entsprechenden Paare noch nicht in der Marktübersicht des Testers verfügbar (gemäß Punkt a.)

c(2). Die Tiefe ist in Ordnung, ich habe nicht um mehr gebeten.

Daher ist es logischer (aber auch etwas komplizierter), die Daten gemäß b, c, c(2) herunterzuladen, wenn wir auf die Daten im EA zugreifen.

Ich schlage vor, #property tester_symbol hinzuzufügen , um die Tabelle von Punkt a zu füllen (wenn die Idee richtig beschrieben ist), mit der Möglichkeit, mehrere zu setzen, wie #property description. Aber immer noch davon überzeugt, dass in Abwesenheit von #property tester_symbol paging gehen sollte "als Spiel" (mit Ausnahme der Basis-Zeichen), da ihre REALITÄT hängt ausschließlich von dem Algorithmus des EA selbst.


Diese Funktionen sind praktisch (und völlig ausreichend), um die Liste der Symbole im Prüfgerät zu erstellen

Marktdaten erhalten

Funktionen zur Beschaffung von Informationen über die Marktbedingungen.

Die Funktion

Aktion

SymboleGesamt

Gibt die Anzahl der verfügbaren (in MarketWatch ausgewählten oder aller) Symbole zurück

SymbolName

Gibt den Namen des angegebenen Symbols zurück

SymbolAuswahl

Wählt ein Symbol in MarketWatch aus oder entfernt das Symbol aus dem Fenster

 
"Verwenden Sie häufig die Größenänderung von Arrays? Manchmal kocht Ihr Hirn über und Sie wissen nicht, warum die Meldung"Array out of range in..." erscheint? "Dann kommen wir zu euch!" :D

-Prüfen, ob ArrayResize() "-1" zurückgibt?

Früher wurde eine Meldung wie "Kein Speicherplatz vorhanden" angezeigt und das Programm stürzte ab - jetzt nicht mehr.

Документация по MQL5: Операции с массивами / ArrayResize
Документация по MQL5: Операции с массивами / ArrayResize
  • www.mql5.com
Операции с массивами / ArrayResize - Документация по MQL5
 

360 bauen. Sieht nach einem Fehler in CTrade aus:

2010.10.04 18:59:00 CTrade::PositionOpen: Sofortkauf 0.10 EURUSD bei 1.36890 sl: 1.36390 tp: 1.37890 [erledigt bei 0.00000]

2010.10.05 09:43:00 CTrade::PositionModify: modify buy 0.00 EURUSD (sl: 1.36897, tp: 1.37861) [done]

 

360 bauen. Im Tester wurde mehrmals die Meldung "tester agent failed" angezeigt.

GK 0 Tester 18:26:31 EURUSD: Vorläufiges Herunterladen der Historie gestartet

CL 0 Tester 18:28:55 EURUSD: Vorläufiges Herunterladen der Historie abgeschlossen

GH 0 Kern 2 18:28:59 Agentenprozess gestartet

HP 0 Kern 2 18:29:00 Verbindung zu 127.0.0.1:3000

OI 2 Tester 18:29:05 tester agent got failed

LI 0 Core 2 18:29:05 connect closed

GN 0 Core 2 18:34:14 agent process started

KJ 0 Core 2 18:34:14 connecting to 127.0.0

.

1:3000

RJ 0 Core 2 18:34:15 connected

OP 0 Core 2 18:34:15 authorized (agent build 360)

NH 0 Tester 18:34:15 EURUSD,M1 (Alpari-Demo): testing of experts\third.ex5 from 2010.10.04 00:00 to 2010.11

.

05 00:00:00 zu starten

...

HQ 0 Core 2 19:27:47 agent process started

II 0 Core 2 19:27:48 connecting to 127.0.0.1:3000

CP 2 Tester 19:27:53 tester agent failed

HP 0 Core 2 19:27:53 connect closed

KI 0 Core 2 19:28:10 connecting to 127.0.0.1:3000

QL 0 Core 2 19:28:10 connected

PN 0 Core 2 19:28:10 authorized (agent build 360)

RJ 0 Tester 19:28:10 EURUSD,M1 (MetaQuotes-Demo): testing of experts\third_alptest2.ex5 from 2010.10.04 00:00 to 2010.11.05 00:00 to be started

MF 0 Core 2 19:28:11 common synchronization completed

IM 0 Core 2 19:28:11 3124 bytes of account info

loaded