MetaTrader 5 Strategie-Tester und MQL5 Cloud Netzwerk - Seite 16

 
Interesting:

Ist es eine so schwierige Aufgabe, einen direkten Agentenmanager für Linux zu entwickeln (zumindest für die gängigsten Agenten)?

Die Sache ist die, dass eine so einfache Datei wie metatester[64].exe (~2,5 Mb) Folgendes enthält

  1. der Testagent selbst, einschließlich des gesamten Laufzeit-Subsystems von MQL5, seiner Sandbox und der gesamten Geschäftslogik des Terminals
  2. Der gesamte GUI-Teil der Testvisualisierung (dies ist eine reine Windows-GUI, die nicht portiert werden kann)
  3. GUI-Teil des Agentenmanagers
  4. MQL5-Cloud-Netzwerk
  5. automatische Updates

Wir haben in eine EXE-Datei, die keine weiteren zusätzlichen Bibliotheken/Komponenten benötigt, so viele Funktionen gepackt und die Arbeit damit vereinfacht, dass die Replikation der gleichen Funktionalität mit der gleichen Qualität unter Linux nicht in Frage kommt.
 
Renat:
Die Tatsache, dass wir in eine EXE-Datei, die keine weiteren zusätzlichen Bibliotheken/Komponenten benötigt, so viele Funktionen gepackt und damit die Arbeit vereinfacht haben, dass die Replikation der gleichen Funktionalität mit der gleichen Qualität unter Linux nicht in Frage kommt.

Microsofts immerwährendes plattformübergreifendes Problem.

Renat:

Die Sache ist die, dass eine so einfache Datei wie metatester[64].exe (~2,5 Mb) Folgendes enthält

  1. der Testagent selbst, einschließlich des gesamten Laufzeit-Subsystems von MQL5, seiner Sandbox und der gesamten Geschäftslogik des Terminals
  2. Der gesamte GUI-Teil der Testvisualisierung (dies ist eine reine Windows-GUI, die nicht portiert werden kann)
  3. GUI-Teil des Agentenmanagers
  4. MQL5-Cloud-Netzwerk
  5. Auto-Updates

Das ist klar. Ich verstehe nicht, warum sie nicht einen Teil der Funktionalität streichen und nur das belassen können, was im MQL5 Cloud Network verfügbar ist?

Ich verstehe zum Beispiel nicht, warum ein solches Schema für den zweiten Punkt (dessen Hauptpunkt die Unmöglichkeit der Portierung ist) notwendig ist...

 
Interesting:

Microsofts immerwährendes Problem mit Cross-Platforming.

Das ist verständlich. Ich verstehe nicht, warum sie nicht einen Teil der Funktionalität streichen und nur das belassen können, was im MQL5 Cloud Network funktioniert?

Ich verstehe zum Beispiel nicht, warum eine solche Regelung für den zweiten Punkt notwendig ist (die Unmöglichkeit der Portierung ist der Hauptpunkt)...

Ich würde mir lieber wichtigere Fragen stellen:

  1. Wer braucht schon ein abgespecktes Testgerät für Linux? Ohne Schutzmaßnahmen, ohne normale 32/64-Unterstützung, ohne schöne Architektur und Einfachheit. Die Entwickler brauchen das sicher nicht.
  2. Warum verbringen die Entwickler ein halbes Jahr (mindestens) ihres Lebens mit diesem Projekt und spucken und fluchen? Wo bleibt der Gewinn des Entwicklers?
  3. Warum sollten die Entwickler eine saubere Architektur ruinieren, indem sie einen plattformübergreifenden Horror in den Code einbauen?

Softwareentwicklung ist ein Geschäft, das von klaren Antworten auf wirtschaftliche Fragen bestimmt wird.

Diejenigen, die keine Rücksicht auf die harte Ökonomie nehmen, machen Luftprojekte, ruinieren die Investoren, und dann... Jobwechsel und meist wieder im Kreis :)

ps: MetaTrader 4 und MetaTrader 5 funktionieren recht ordentlich unter Linux via Wine, und wir stellen ausdrücklich sicher, dass das Terminal unter Wine gut funktioniert (wir beheben die kleinen Dinge von Zeit zu Zeit).

 
Renat:

In der nächsten Version werden die Tester-Agenten nicht im MQL5 Cloud Network arbeiten können, wenn sie unter Virtualisierern oder Emulatoren (Virtual PC, VMWare, Virtual Box, Wine, etc.) gestartet werden . Dies geschieht, um die Möglichkeit überhöhter Leistungsbewertungen zu minimieren.

Der normale Servermodus zur Ausführung von Agenten unter Virtualisierern bleibt vollständig erhalten. Das bedeutet, dass Sie Agenten in jeder Form für Ihre eigenen Bedürfnisse einsetzen können.

Was ist das Problem, welche Art von Übertaktung findet unter Virtualisierung statt?

Was spielt es für eine Rolle, wo sich die Kerne befinden?

es tut mir wirklich leid, wenn es möglich ist, die Bewertung zu drehen, ehrlich gesagt verstehe ich nicht wirklich, wie ...

was ist rating? was ist rating?

es gibt eine Aufgabe für den Kernel - der Kernel erledigt die Aufgabe - es gibt eine Zeit für den Kernel, diese Aufgabe zu erledigen

es sollten keine anderen Kriterien gelten

all dies kann im MQL5 Cloud Network kontrolliert werden

Einfach ausgedrückt

1-Kern sagt, ich bin bereit

2- MQL5 Cloud Network sagt zum Kern, geh zur Arbeit, stell die Zeit ein

3-Kern arbeitet für 3 Sekunden

4-Kern antwortet auf MQL5 Cloud Network -> nehmen Sie Ihre Aufgabe

5 - gut gemacht Kernel - du hast es in 3 Sekunden geschafft - hier ist ein Bonbon in Form von 0,1 Cent

ein weiterer Kern

1-Core sagt, ich bin bereit.

2- MQL5 Cloud Network - > Kernel ist pünktlich

3-Kern-Arbeiten für 30 Sekunden

4-Kern-Antworten auf MQL5 Cloud Network -> nehmen Sie Ihre Aufgabe

5 - gut gemacht Core - du hast es in 30 Sekunden geschafft - hier ist ein Bonbon in Form von 0,1 Cent

Es ist ganz einfach: Je schneller und je härter Sie arbeiten, desto mehr bekommen Sie.

Das MQL5 Cloud Network sollte keine Favoriten haben - die Aufgaben werden ihnen öfters gegeben ...

Es ist wie im Leben - Favoriten werden öfters bestellt).

was bedeutet, dass das Cloud-Netzwerk die Aufgaben nicht einfach nach Listen verteilen sollte, sondern wahrscheinlich durch Verschieben der Kerne in die Warteschlangen.

um zu verhindern, dass nur diejenigen, die ganz oben auf der Liste stehen, den Job bekommen - und so weiter im Kreis

wenn wir davon ausgehen, dass es 100 Aufgaben und etwa 1000 Kerne gibt

dann bekommen die ersten 100 den Job

sie erledigen sie - dann werden weitere 100 Aufgaben in die Warteschlange gestellt und wieder an die Kerne übergeben, die an der Spitze der Liste stehen

und die Brücke 900 wird untätig sein

die ersten 100 Kerne werden also am ehesten Geld verdienen

---

Nun, wenn das Problem nicht gelöst ist, dann leider

:-(((( , dann minus 8 meiner guten Kerne aus dem Pool, I7 - 3 GHz, 8 Gigabyte Kerne

Ich werde die virtuelle Maschine nicht verlassen - sie läuft unter LINUX CentOS, ich werde nicht auf einen Windows-Host umziehen.

das ist genau der Host, der 24/7 arbeitet!

----

Ich habe es absichtlich nur auf einer virtuellen Maschine gemacht und 2 der 3 Kerne auf dem Host der virtuellen Maschine zugewiesen

Ich habe jetzt 47 Kerne im Pool - von denen nur die letzten beiden

sich auf demselben Rechner befinden

64x 3 amd-Kerne

d.h. von den 3 physischen Kernen werden zwei ein zweites Mal genutzt, aber von einem anderen Betriebssystem

Renat, ich verstehe nicht ganz, warum das ein Problem sein sollte

Wenn es hilft, eine Lösung zu testen und zu finden - die Verwendung virtueller Maschinen zuzulassen, werden wir uns freuen

Bei Bedarf kann ich ein paar mehr davon machen

Übrigens - von den 47 Kernen wurden nur diese beiden 2 Mal verteilt

die anderen sind alle physisch einmalig - selbst die auf einem großen i7-Rechner sind alle auf virtuellen Maschinen, aber nur einmalig

--

 
Das Problem ist, dass man nicht "pro Aufgabe" abrechnen kann. Zahlung für genutzte Ressourcen = CPU-Leistung (PR) * Zeit.

Bei dieser Formel ist eine genaue Schätzung der Leistung entscheidend, die bei Virtualisierungen leicht verfälscht werden kann.
 

Auf einem der Computer habe ich Testagenten installiert und ausgeführt, aber sie funktionieren nicht. Genauer gesagt wird die CPU-Zeit regelmäßig von Metatester-Diensten belegt (bis zu 100 % pro Kern), aber der Agenten-Manager zeigt Nullen an (Aufgaben und Zeit; lokal und in der Cloud) und auf der mql5-Website haben diese Agenten Nullen im Profil (aber die Agenten sind im Profil sichtbar, während eines der Läufe hatte einer von ihnen irgendwie eine Aufgabe und dann eine andere). Wenn Sie von MetaTrader5 aus auf diese Agenten zugreifen, erhalten Sie Meldungen, dass sie beschäftigt sind.

Hier ist der Inhalt des MT5tester-Verzeichnisses (von dem aus ich metatester.exe ausführe) und die angehängten Unterverzeichnisse und Dateien:

MT5tester
    Tester
        Manager
            logs
                20110723.log
                20110725.log
            common.ini
    metatester.exe

Ich füge diese Dateien bei. Wie Sie sehen, fehlen im Tester-Verzeichnis die Agents*-Verzeichnisse, die normalerweise angelegt werden.

Version metatester build 479, Windows Server 2003 R2 mit SP2, Enterprise Edition, englisch, 32 bit; Intel Core 2 Duo T9300 2.5 Ghz CPU; 4 GB RAM. Das MT5tester-Verzeichnis und alle Unterverzeichnisse und Dateien für alle Benutzer (Jeder) ist auf Vollzugriff eingestellt, zuvor ist der Benutzer, unter dem metatester.exe ausgeführt wird (und der in Windows angemeldet ist) und der SYSTEM-Benutzer, unter dem die metatester-Dienste ausgeführt werden, auf Vollzugriff eingestellt.

Dateien:
pack.zip  2 kb
 

Die Agenten waren im MQL5 Cloud Network registriert und arbeiteten an Aufgaben aus dem Netzwerk. Zu diesem Zeitpunkt konnten die Agenten nicht als Remote-Agenten verbunden werden, da sie sehr beschäftigt waren.

Hier sind ihre unvollständigen (noch nicht alle Felder sind aktualisiert) Statistiken - etwa 63 000 Aufgaben wurden durchgeführt:

Intel Core2 Duo T8300 @ 2.40GHz, 3581MB


0 32483 0 2011.06.08 2011.07.25
Intel Core2 Duo T8300 @ 2.40GHz, 3581MB


0 29861 0 2011.06.08 2011.07.25


Die Verzeichnisse der Agenten wurden bei der Deinstallation dieser Agenten automatisch entfernt (sie räumen ihren eigenen Müll auf). Hier sind die Zeilen aus dem Protokoll der Agentenlöschung:

RQ    0    Tester    11:12:33    MetaTester 5 build 479 (12 Jul 2011)
HQ    0    Startup    11:12:33    initialization finished
NH    0    Service    11:12:47    Service 'MetaTester-1' stop initialized
MP    0    Service    11:12:50    Service 'MetaTester-1' stopped in 3031 ms
NH    0    Service    11:12:50    Service 'MetaTester-1' successfully uninstalled
PS    0    Service    11:12:51    Service 'MetaTester-2' stop initialized
KK    0    Service    11:12:56    Service 'MetaTester-2' stopped in 5500 ms
OS    0    Service    11:12:56    Service 'MetaTester-2' successfully uninstalled


Im Allgemeinen funktioniert alles wie vorgesehen.

 
Renat:

Die Agenten waren im MQL5 Cloud Network registriert und arbeiteten an Aufgaben aus dem Netzwerk. Zu diesem Zeitpunkt konnten die Agenten nicht per Fernzugriff verbunden werden, da sie sehr beschäftigt waren.

...

Die Verzeichnisse der Agenten wurden bei der Deinstallation dieser Agenten automatisch gelöscht (sie räumen ihren eigenen Müll auf). Hier sind die Zeilen aus dem Protokoll über das Löschen von Agenten:

...

Das heißt, andere Mittel:

CPU PR Aufgaben Einnahmen Erstellt Tätigkeit
Intel Core2 Duo T9300 @ 2.50GHz, 4094MB 0 0 0 2011.06.08 2011.06.08
Intel Core2 Duo T9300 @ 2.50GHz, 4094MB 0 2 0 2011.06.08 2011.07.22

Die Verzeichnisse der Agenten wurden immer noch nicht angezeigt, während die Metatester-Dienste liefen (ich weiß, dass Daten bei der Deinstallation gelöscht werden).

 
zdd:

Das heißt, andere Mittel:

CPU PR Aufgaben Einnahmen Erstellt Tätigkeit
Intel Core2 Duo T9300 @ 2.50GHz, 4094MB 0 0 0 2011.06.08 2011.06.08
Intel Core2 Duo T9300 @ 2.50GHz, 4094MB 0 2 0 2011.06.08 2011.07.22

Die Verzeichnisse der Agenten sind nie erschienen, während die Metatester-Dienste liefen (ich bin mir bewusst, dass die Deinstallation Daten löscht).

Dies sind die falschen Bearbeiter - sehen Sie sich das Datum der Erstellung und der letzten Aktivität an.

Die richtigen Agenten, die Sie sich ansehen sollten, sind die von mir genannten - das Datum ihrer letzten Aktivität stimmt genau mit dem aktuellen Datum und den Deinstallationsprotokollen überein.

ps: Installieren Sie die Agenten erneut und sehen Sie sich die Verzeichnisse und ihre persönlichen Protokolle an

 
Renat:

Dies sind die falschen Bearbeiter - sehen Sie sich das Datum der Erstellung und der letzten Aktivität an.

Es ist richtig, sich die von mir genannten Agenten anzuschauen - ihre letzten Aktivitätsdaten stimmen genau mit ihrem aktuellen Datum und ihren Deinstallationsprotokollen überein.

ps: Installieren Sie die Agenten erneut und sehen Sie sich die Verzeichnisse und ihre persönlichen Protokolle an

Die von Ihnen zitierten Agenten laufen auf einem anderen Computer (mit einem T8300-Prozessor), und es gibt keine Probleme mit ihnen.

Erneute Überprüfung (auf einem Computer mit T9300-Prozessor).

1. Deinstallieren Sie die Agenten. Deinstallieren Sie das MT5tester-Verzeichnis mit seinem gesamten Inhalt.

2. Deinstallieren Sie alle Agenten aus dem Profil, die sich auf dem Computer mit dem T9300 befanden.

3. ich habe den Ordner MT5proba erstellt und ihm Vollzugriff für Alle gegeben.

Ich habe die Datei metatester.exe (Build 479) dorthin kopiert (wurde von LiveUpdate in MetaTrader5 erhalten). 5.

5. metatester.exe ausgeführt, Konto angegeben, zwei Agenten auf neuen Ports erstellt (einer von ihnen startete aus unbekanntem Grund nicht, also zwei weitere erstellt, unnötige gelöscht). Ich hänge die Protokolldatei an.

6. Ich habe MetaTrader5 auf einem anderen Computer gestartet, alle Remote-Agenten im Strategietester gelöscht und zwei neue Agenten erstellt (IP-Adresse, Port, Passwort angegeben). Wählen Sie jeden von ihnen als aktuellen Agenten aus und führen Sie den Einzeltest eines EA durch. Der CPU-Typ wurde erkannt, aber der Test wurde nicht ausgeführt.

MetaTrader5 Strategie-Tester

Ich zeige das Protokoll:

CS      0       zddbase 15:38:19        connecting to 192.168.0.33:4001
CD      0       zddbase 15:38:19        connected
EM      0       zddbase 15:38:19        authorized (agent build 479)
II      0       Tester  15:38:19        EURUSD,M1 (MetaQuotes-Demo): testing of Experts\proba.ex5 from 2011.07.10 00:00 to 2011.07.16 00:00 to be started
NF      0       zddbase 15:38:19        common synchronization completed
HL      0       zddbase 15:38:19        3768 bytes of group info loaded
DM      0       zddbase 15:38:19        1478 bytes of tester parameters loaded
MJ      0       zddbase 15:38:19        3256 bytes of input parameters loaded
FN      0       zddbase 15:38:19        initial deposit 10000.00 USD, leverage 1:100
CE      0       zddbase 15:38:19        successfully initialized
MO      0       zddbase 15:38:19        13 Kb of total initialization data received
QF      0       zddbase 15:38:19        Intel Core2 Duo  T9300 @ 2.50 GHz, 4094 MB
FQ      2       zddbase 15:38:19        symbol EURUSD synchronization error
QD      0       zddbase 15:38:19        cannot get history EURUSD,M1
HO      0       zddbase 15:38:20        connection closed
CD      0       zddbase 15:38:34        connecting to 192.168.0.33:4002
MF      0       zddbase 15:38:35        connected
CL      0       zddbase 15:38:35        authorized (agent build 479)
GK      0       Tester  15:38:35        EURUSD,M1 (MetaQuotes-Demo): testing of Experts\proba.ex5 from 2011.07.10 00:00 to 2011.07.16 00:00 to be started
LD      0       zddbase 15:38:35        common synchronization completed
JN      0       zddbase 15:38:35        3768 bytes of group info loaded
NK      0       zddbase 15:38:35        1478 bytes of tester parameters loaded
KM      0       zddbase 15:38:35        3256 bytes of input parameters loaded
LH      0       zddbase 15:38:35        initial deposit 10000.00 USD, leverage 1:100
MS      0       zddbase 15:38:35        successfully initialized
CM      0       zddbase 15:38:35        13 Kb of total initialization data received
OD      0       zddbase 15:38:35        Intel Core2 Duo  T9300 @ 2.50 GHz, 4094 MB
LS      2       zddbase 15:38:35        symbol EURUSD synchronization error
OG      0       zddbase 15:38:35        cannot get history EURUSD,M1
PQ      0       zddbase 15:38:35        connection closed

Während der Optimierung:

EF      1       Tester  15:43:50        genetic mode turned on due to 4443670 passes, to use complete algorithm decrease amount of optimized parameters
LJ      0       Tester  15:43:50        Experts\proba.ex5 on EURUSD,M1 from 2011.07.10 00:00 to 2011.07.16 00:00
NL      0       Tester  15:43:50        genetic optimization started
DK      0       Tester  15:43:50        size of initial task pack is 128
JP      0       zddbase 15:43:50        connecting to 192.168.0.33:4001
IG      0       zddbase 15:43:50        connecting to 192.168.0.33:4002
PS      0       zddbase 15:43:50        connected
NO      0       zddbase 15:43:50        connected
HE      0       zddbase 15:43:50        authorized (agent build 479)
PO      0       zddbase 15:43:50        authorized (agent build 479)
NP      0       zddbase 15:43:50        genetic pass (0, 2628127, 1) started
HI      0       zddbase 15:43:50        genetic pass (1, 2957422, 1) started
GQ      0       zddbase 15:43:50        common synchronization completed
GJ      0       zddbase 15:43:50        common synchronization completed
NN      2       zddbase 15:43:50        genetic pass (0, 2628127) tested with error "no history"
KF      0       Tester  15:43:50        genetic pass (0, 2628127) returned to queue
QR      0       zddbase 15:43:50        connection closed
PG      0       zddbase 15:43:50        connecting to 192.168.0.33:4001
HS      0       zddbase 15:43:50        connected
RQ      0       zddbase 15:43:50        authorized (agent build 479)
LJ      0       zddbase 15:43:50        genetic pass (0, 2628127, 1) started
QS      0       zddbase 15:43:50        common synchronization completed
JI      2       zddbase 15:43:50        genetic pass (1, 2957422) tested with error "no history"
GM      0       Tester  15:43:50        genetic pass (1, 2957422) returned to queue
GJ      0       zddbase 15:43:50        connection closed

Aus den Protokollen geht hervor, dass der Agent den Verlauf nicht laden konnte. In der Verzeichnisstruktur der Agenten hat sich im Vergleich zu meinen früheren Angaben nichts geändert (keine Agents*-Verzeichnisse, kein Verlauf).

Agenten sind noch nicht im mql5-Profil erschienen, sie laden die CPU noch nicht (es ist 1 Stunde vergangen, seit sie gestartet wurden)...