Fehler, Irrtümer, Fragen - Seite 1065

 
vlad_123:

Und noch etwas - ich habe einen 'nützlichen' Trick gefunden...

Deklarieren Sie ein Array, zum Beispiel 'int arrTemp[5];'.

Unter dem Debugger sind alle Elemente gleich 0, während des Tests jedoch nicht.

Ich habe einen halben Tag damit verbracht, herauszufinden, warum die connect()-Funktion der WinSock-Bibliothek, die von MQL4 portiert wurde, nicht funktioniert.

In mql5 müssen alle Variablen explizit initialisiert werden, zum Beispiel:

int arrTemp[5] = {0};  // допускается такая сокращённая форма, вместо {0,0,0,0,0}

Es gibt keine Standardinitialisierung mit Nullen, das ist normal, gewöhnen Sie sich daran.

 
Ich habe festgestellt, dass sowohl im MT4 als auch im MT5 auf den Wochencharts die Balken auf einen Sonntag datiert sind. Ist es der pro-westliche Stil? Wenn ja, was nützt es, wenn die wöchentlichen Sitzungen in der ganzen Welt ohnehin am Montag beginnen?
 
MetaDriver:

In mql5 sollten alle Variablen explizit initialisiert werden.

Es gibt keine Standardinitialisierung mit Nullen, das ist normal, gewöhnen Sie sich daran.

Ich habe nichts dagegen, aber es würde auf die gleiche Weise funktionieren. Im Debugger erfolgt die Initialisierung mit Nullen automatisch.

Übrigens, und niemand mit der Tatsache, dass während der Optimierung von EA, Terminal kann nicht auf Remote-Agenten über VPN zugreifen konfrontiert?

Ich versuche, die Remote-Agenten auf meinem Arbeitscomputer von zu Hause aus zu verwenden, der über ein Standard-Windows-VPN mit dem Unternehmensnetzwerk verbunden ist. Die Agenten selbst auf meinem Arbeitscomputer handhaben Aufgaben von MQL5 Cloud Network ganz gut, ich kann mich mit meinem Arbeitscomputer über RDP-Terminal von zu Hause aus verbinden und das Terminal auf meinem Heimcomputer kann Agenten von MQL5 Cloud verwenden.

Das Einzige, was ich nicht nutzen kann, ist die Verwendung der Agenten auf meinem Arbeits-PC von meinem Heim-PC aus. Ich habe sogar versucht, Agenten auf dem 443-Port des Büro-PCs laufen zu lassen, um (theoretisch) mögliche Filter/Firewalls zu umgehen, aber es hat nicht funktioniert. Das Terminal protokolliert "Verbindung zum Agenten...". - und das ist alles.

Tracert von zu Hause zur Arbeit geht. netstat -na' auf dem Heimcomputer zeigt:

TCP    10.6.XXX.XXX:1744       10.6.YYY.YYY:2000       SYN_SENT

d.h. keine weiteren SYN_SENT

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
 
vlad_123:

Das Einzige, was nicht funktionieren wird, ist, vom Heimcomputer aus Agenten auf den Arbeitscomputer zu holen. Ich habe sogar versucht, den Agenten über Port 443 auf dem Arbeitscomputer laufen zu lassen, um (theoretisch) mögliche Filter/Firewalls zu umgehen, aber es hat nicht funktioniert. Das Terminal protokolliert "Verbindung zum Agenten...". - und das ist alles.

Tracert von zu Hause zur Arbeit geht. netstat -na' auf der Startseite zeigt:

schauen Sie tiefer in die VPN-Verbindungseinstellungen, die Luv-Brandmauer,
 
vlad_123:

Das stört mich nicht, aber ich wünschte, es würde einheitlich funktionieren. Andernfalls wird der Debugger automatisch mit Nullen initialisiert.

Und ja, es gibt einen solchen Brief. Ich weiß nicht, warum, aber es gibt ihn. Manchmal hilft er, manchmal behindert er die Suche nach den Leckereien.
 
micle:
Schauen Sie tiefer in die VPN-Verbindungseinstellungen, die Windows-Brandmauer,

Es ist eine Sache des Schamanismus...

Die Firewall auf dem Heimcomputer ist vollständig deaktiviert.

Das Terminal auf dem Arbeitscomputer kann die Agenten auf dem Heimcomputer nutzen, aber nicht umgekehrt.

Ich habe keine Probleme mit der VPN-Verbindung gefunden.

 
vlad_123:

Es ist eine Sache des Schamanismus...

Die Firewall auf dem Heimcomputer ist vollständig deaktiviert.

Das Terminal auf dem Arbeitscomputer kann die Agenten auf dem Heimcomputer nutzen, aber nicht umgekehrt.

Ich konnte keine Probleme mit der VPN-Verbindung feststellen.

Falls Sie Win7 verwenden, fügen Sie eine Regel für eingehende/ausgehende Verbindungen hinzu. Dort gibt es einen Assistenten und Zusatzfunktionen. Im Falle von Win XP gibt es auch die Möglichkeit, eine Ausnahme für ein Programm oder einen Anschluss hinzuzufügen. Ich habe XP schon lange nicht mehr benutzt.
 
micle:
Falls Sie Win7 verwenden, fügen Sie eine Regel für eingehende/ausgehende Verbindungen hinzu. Dort gibt es einen Assistenten, Add-ons. Im Falle von Win XP gibt es auch die Möglichkeit, eine Ausnahme für ein Programm oder einen Anschluss hinzuzufügen. Ich habe XP schon lange nicht mehr benutzt.

Halleluja!

Endlich habe ich es herausgefunden...

Die Sache ist, es gibt 2 MetaTrader 5 Instanzen in verschiedenen Verzeichnissen auf meiner Arbeit Computer (Win7) (wo die Agenten, die ich verwenden möchten) installiert.

Ich erinnere mich nicht mehr an die Reihenfolge der Installation/Entfernung der Agenten, aber es stellte sich heraus, dass die Agenten von der Instanz N1 aus gestartet werden, und die eingehende Regel in der Windows-Firewall für den "MetaTrader 5 Strategy Tester Agent" zeigte auf die EXE-Datei der Instanz N2. Ich habe eine Regel für die Instanz N1 hinzugefügt - alles funktioniert.

Es wäre nützlich, bei der Deinstallation/Installation von Agenten im Agent Manager die Regel in der Windows Firewall zu aktualisieren.

Es gibt immer noch ein ungelöstes Problem. Es geht um die Auflösung host_name -> IP_address mit der Funktion getaddrinfo() von WinSock. Kann jemand einen Beispielcode in MQL5 erstellen?

Es ist nicht wirklich fragwürdig, die IP anstelle des Hostnamens zu verwenden ;-). Und die Verwendung des Hostnamens ist in meinem Fall ein Muss.

 
vlad_123:
...

Achtung - Frage: wie in MQL5, um Daten an dieser Adresse zu erhalten?

eine Funktion in der DLL erstellen, die zu dieser Adresse geht und die erforderlichen Daten zurückgibt ))
 
kazakov.v:
Ich möchte eine Funktion in der DLL erstellen, die zu dieser Adresse geht und die erforderlichen Daten zurückgibt ))

Nein, das passt nicht.

Der Expert Advisor wurde für die verteilte Verarbeitung von Finanzinformationen entwickelt, und ich möchte mich nicht mit x86/x64-DLLs herumschlagen. D.h. ich muss es mit MQL5-Tools implementieren.