Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1012

 
Alexey Viktorov:

Beachten Sie in diesem Beitrag die Worte "Alle Terminals haben gemeinsame Ordner".


Suchen Sie nach Informationen darüber, wie Sie dies tun können, und los geht's... Das nennt man Ordnerverknüpfung.

Sie können also Folgendes tun. Schreiben Sie eine Bibliothek und greifen Sie von verschiedenen Terminals aus auf diese Bibliothek zu, um Daten auszutauschen oder einen Roboter mit 2m Terminals zu verbinden. Ich habe ein wenig über die Verknüpfung gelesen, bis ich es herausgefunden habe. Vielleicht gibt es ein Thema, in dem Sie mehr darüber erfahren können?

 
Seric29:

Sie können also Folgendes tun. Schreiben Sie eine Bibliothek und greifen Sie von verschiedenen Terminals aus auf diese Bibliothek zu, um Daten auszutauschen oder einen Roboter mit 2 Terminals zu verbinden. Ich habe ein wenig über die Verknüpfung gelesen, bis ich es herausgefunden habe. Vielleicht gibt es ein Thema, in dem Sie mehr darüber erfahren können?

Ich habe das Thema im Forum nicht gesehen, aber nachdem ich mir einige Anleitungen angeschaut habe, finde ich diese hier verständlicher. Ich habe es ausprobiert, es hat funktioniert, aber ich sehe noch keine Notwendigkeit, es zu benutzen. Ich halte es allerdings für eine gute Idee, die Historie aller Terminals in einem Ordner zusammenzufassen.

 
Alexey Viktorov:

Ich bin im Forum nicht auf diesen Thread gestoßen, aber nachdem ich mir einige Anleitungen angeschaut habe, finde ich diese hier verständlicher. Ich habe es ausprobiert und es funktioniert, aber ich sehe noch keine Notwendigkeit dafür. Obwohl ich denke, dass es gut wäre, die Geschichte aller Terminals in einem Ordner zu vereinen.

Danke für den Rat. Ich habe einen festen Link verwendet



Dazu müssen die Terminals im selben Volumen installiert sein.

Ich habe dummerweise eine Unit hinzugefügt und dann die ex4- und mq4-Dateien zusammengeführt, als Ergebnis funktioniert jetzt alles auf beiden Seiten, man kann gemeinsame Bibliotheken schreiben und sie benutzen. Ich weiß nicht, wie zuverlässig das ist, aber ich habe den Roboter auf die Karte gesetzt. Wenn ich den Code kompiliere, ändern sich die Dateien auf 2 Seiten, aber die Update-Berechnungen geschehen auf einer Seite, wenn ich den Roboter im Online-Modus arbeiten lasse, muss das Programm gleich sein und abgeschlossen und kompiliert werden, da es unbekannt funktionieren wird, vielleicht hat jemand die Möglichkeit zu überprüfen, ich kann noch nicht testen.

 
Seric29:

Danke für den Rat. Ich habe einen festen Link verwendet



Dazu müssen die Terminals im selben Volumen installiert sein.

Ich habe dummerweise eine Einheit hinzugefügt und dann die ex4- und mq4-Dateien zusammengeführt, am Ende funktioniert alles auf beiden Seiten, jetzt kann man gemeinsame Bibliotheken schreiben und sie verwenden. Ich weiß nicht, wie zuverlässig das ist, aber ich habe den Roboter auf die Karte gesetzt. Wenn ich den Code kompilieren Dateien ändern auf 2 Seiten, sondern aktualisieren Sie die Berechnungen auf der einen Seite, wenn ich den Roboter im Online-Modus zu arbeiten, muss ich das Programm auf die gleiche und abgeschlossen und kompiliert, wie funktionieren wird, ist unbekannt, vielleicht hat jemand die Möglichkeit, zu überprüfen, kann ich nicht testen noch.

So gibt es einen magischen Ordner direkt im Compiler, oder nicht geeignet?


 
Seric29:

Danke für den Rat. Ich habe einen festen Link verwendet

Warum Links zu bestimmten Dateien erstellen? Wäre es nicht besser, Symlinks zu Ordnern zu erstellen, so dass alle Dateien dieses Ordners in den Terminals verfügbar sind, in denen diese Links erstellt wurden?

Das ist eine gute Idee:

Auf dem Bild 00.png ist links der Ordner selbst und rechts ein Link von einem Terminal.

In Bild 11.png auch ein Link von einem anderen Terminal

Und auf dem Bild 22.png Inhalt, auf der linken Seite ist ein Ordner selbst, und auf der rechten Seite ist Inhalt von einem Link.

Dateien:
00.png  102 kb
11.png  103 kb
22.png  118 kb
 
Vitaly Muzichenko:

Gibt es also einen magischen Ordner direkt im Compiler, oder ist er nicht geeignet?


Ich möchte wissen, ob dies möglich ist und ob es zuverlässig funktionieren wird. Die Antwort war nein. Mir wurde ein Programm empfohlen, und natürlich habe ich damit herumgespielt, aber es hat nicht funktioniert. Dann gab den Rat der Kommandozeile, verbrachte ich 3 Stunden herumspielen und bekam etwas, aber ich weiß nicht, wie es ist nicht zuverlässig ersten Updates Datei Datum und Inhalt, und dann begann, nur den Inhalt zu ändern und das Datum nicht geändert hat, ist es ein wenig seltsam. Wo kann ich mehr über Ihre Methode erfahren? Wie zuverlässig ist sie, werden die Roboter online miteinander kommunizieren können?

 
Alexey Viktorov:

Warum Links zu bestimmten Dateien erstellen? Wäre es nicht besser, Symlinks zu Ordnern zu erstellen, so dass alle Dateien dieses Ordners in den Terminals verfügbar sind, in denen diese Links erstellt wurden?

Das ist schon bemerkenswert:

Auf dem Screenshot 00.png ist links der Ordner selbst und rechts ein Link von einem Terminal

Bild 11.png hat auch einen Link von einem anderen Terminal

Und auf dem Bild 22.png befindet sich ein Inhalt, auf der linken Seite ein Ordner selbst und auf der rechten Seite ein Link zum Inhalt.

Ich habe es gesehen, synchronisieren über TotalComander, aber wie ich es verstehe, überträgt es nur Dateien (zB Bilder), und wenn wir darüber reden, dass es eine Textdatei und es ändert, wird es ändern, wenn ich etwas zu der Datei hinzufügen? Wie zuverlässig ist die Kommunikation von TotalComander und können die Roboter online miteinander kommunizieren oder dient sie nur zum Schreiben von Code?

 
Seric29:

Ich habe diese Synchronisierung über TotalComander gesehen, aber soweit ich weiß, werden damit nur Dateien (z. B. Bilder) übertragen, aber wenn es sich um eine Textdatei handelt und sie sich ändert, ändert sich dann auch etwas, wenn ich der Datei etwas hinzufüge? Wie zuverlässig ist die Kommunikation über TotalComander, werden die Roboter online miteinander kommunizieren können oder wird es nur zum Schreiben von Code nützlich sein?

TotalComander dient nur zur Anzeige des Inhalts von zwei Ordnern. Er ist mir vertrauter als der Windows Explorer. Ich habe auch alle Symlinks in der Befehlszeile erstellt. Nur habe ich /D statt /H verwendet und nicht eine Datei, sondern einen Ordner. Und dieser Link hat von verschiedenen Stellen aus Zugriff auf dieselbe Datei.

Ich habe mich allerdings gefragt, ob die Datei verfügbar sein wird, wenn sie von einem Terminal verwendet wird... Wenden Sie sich besser persönlich an Segei Tarbolin. Soweit ich weiß, verwendet er es und weiß es wahrscheinlich genau.

 
Alexey Viktorov:

TotalComander dient nur dazu, den Inhalt von zwei Ordnern anzuzeigen. Außerdem ist er mir vertrauter als der Windows Explorer. Und ich habe alle Symlinks auf dieselbe Weise in der Befehlszeile erstellt. Nur habe ich /D statt /H verwendet und nicht eine Datei, sondern einen Ordner. Und dieser Link hat von verschiedenen Stellen aus Zugriff auf dieselbe Datei.

Obwohl, ich dachte gerade jetzt, aber ob die Datei verfügbar sein wird, wenn sie von einem Terminal verwendet wird ... Schreiben Sie besser in der persönlichen Segei Tarbolin. Soweit ich weiß, verwendet er es und weiß es wahrscheinlich genau.

Ich spielte mit dem Total Commander, in der Regel, wie ich es verstehe, dann gibt es nur Synchronisation zum Zeitpunkt des Drückens der Taste geschieht und durch die Konsole Taste H, der Inhalt der Datei ändert sich in Echtzeit, aber wenn Sie auf die ursprünglichen Berechnungen, dass der Roboter durch Verweis gemacht hat kompilieren klicken, werden nicht geändert, ich habe die Schaltfläche "Kompilieren" und den Link zu drücken, aber wenn der Roboter ist die gleiche und nicht berühren den Code funktioniert, weiß nicht, ob es online funktionieren wird, noch nicht möglich, zu testen, können unvollendete Einstellungen Programm zu bringen. Aber da die Dateien die Eigenschaft ändern, sollte es meiner Meinung nach funktionieren. Im Allgemeinen, hier oder durch die Konsole oder der Kerl schlug etwas oben, aber ich habe nicht die Informationen normal gefunden. Ich werde an den Mann schreiben, den Sie empfohlen haben.

 

Hallo an alle, könnten Sie mir bitte sagen, wie man die Funktion von MQL4 zu MQL5 korrekt umschreibt:

//+------------------------------------------------------------------+
//Anzahl der in der letzten Leiste geschlossenen Sell_Order
int Anz_g_Sell_Order()
{
int count = 0;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == true
&& OrderSymbol() == Symbol() && OrderType() == OP_SELL
&& OrderMagicNumber() == Magic_Nr
&& OrderCloseTime() > iTime(NULL,PERIOD_M15,0))
{
zählen++;
}
}
return(count);
}
//+---------------------------------------------------------------------+

Ich habe es neu geschrieben, aber es funktioniert aus irgendeinem Grund nicht, wo liegt der Fehler? :

//+------------------------------------------------------------------+
//Anzahl der geschlossenen Sell_Order auf dem letzten Balken
int Anzahl_g_Verkauf_Auftrag()
{
int count = 0;
if(HistorySelect(0,INT_MAX))
{
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
ulong ticket = HistoryDealGetTicket(i);
if(HistoryDealGetString(ticket,DEAL_SYMBOL) == _Symbol
&& HistoryDealGetInteger(ticket,DEAL_TYPE) == DEAL_TYPE_SELL
&& HistoryDealGetInteger(ticket,DEAL_ENTRY ) == DEAL_ENTRY_OUT
&& DEAL_ENTRY_OUT > iTime(NULL,PERIOD_M15,0))
{
zählen++;
}
}
}
return(count);
}
//+---------------------------------------------------------------------+

Grund der Beschwerde: