Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 384

 
le0nid2014:
...

if (Auftragssumme() == 0 && ********** )

OrderSend("USDCHF",OP_BUY,Lots,Ask,0,0,0, "5891",MagicNumb,0,Red);


if (OrdersTotal() == 0 && ***********)

OrderSend("USDCHF",OP_SELL,Lots,Bid,0,0,0, "58892",MagicNumb,0,Red);

...
Sie schauen in die falsche Richtung. Alles wurde Ihnen bereits gesagt. Ich habe oben sogar ein abstraktes Beispiel genannt. Oder sind Sie zu faul, eine Suche durchzuführen?
 
Artyom Trishkin:
Wenn Sie zwei Expert Advisors haben, sollten sie denselben Assistenten haben. Sie sollten auf verschiedenen Charts für ein Symbol gestartet werden. Im Allgemeinen ist es natürlich einfacher, das Hauptprojekt zu verbessern, als ein neues zu beginnen.

Ich kann es nicht verbessern, es ist vom Markt.

Ich kann es nicht auf 2 Charts verwenden, weil ich keine geeigneten Bedingungen finde. Es öffnet Aufträge in 2 Richtungen, wenn 0 übrig sind.

 
Artyom Trishkin:

Nun, die Prüfung ist ein Funktionsaufruf, der ein Flag zurückgibt:

if(!Function_check_open_position(symbol,OP_BUY,magic)) function_open_position(symbol,OP_BUY,Lots,stop_loss,take_profit,magic,comment);
if(!Function_check_open_position(symbol,OP_SELL,magic)) Function_open_position(symbol,OP_SELL,Lots,stop_loss,take_profit,magic,comment);

Wenn wir herausfinden wollen, ob es eine Bestellung gibt, die dem Code folgt, müssen wir die Funktion noch einmal aufrufen. Und wenn wir den Wert in Variablen speichern, können wir sie weitergeben, ohne die Funktion erneut aufrufen zu müssen. Zweitens ist es eine Frage des Geschmacks, ich mag es nicht, komplexe Konstruktionen zu machen, vor allem wenn es ein paar Bedingungen gibt oder viele Argumente an eine Funktion übergeben werden. Es verschlechtert das Verständnis des Codes.
 
Vitalie Postolache:
Ja, ich habe mich geirrt, als ich von "no inludes" sprach, diese Funktion ist nur im Trade.mqh inluder enthalten.

Kein Problem, ich habe mit dem Gegenteil abgeschlossen.

Das Ende ist in einem Wimpernschlag geschrieben, es dauert länger, ein Signal zu geben.

auf der 4-rka scheint es unter diesem Gesichtspunkt schlimmer zu sein....

und diese Mehrfachwährung ist eine Schönheit, ich traue meinen Augen nicht.

BRAVO an die Entwickler! Der //Übergang zum ersten Mal war genau 1 Tag.

 
Tapochun:
Wenn Sie zunächst herausfinden wollen, ob es wieder einen Auftrag gibt, müssen Sie die Funktion erneut aufrufen. Und wenn Sie den Wert in Variablen speichern wollen, können Sie diese weitergeben, ohne die Funktion erneut aufzurufen. Zweitens ist es eine Frage des Geschmacks, ich mag es nicht, komplexe Konstruktionen zu machen, vor allem wenn es ein paar Bedingungen gibt oder viele Argumente an eine Funktion übergeben werden. Das erschwert das Verständnis des Codes.
Nach der Frage zu urteilen, brauchen Sie dort nichts weiter.
 
le0nid2014:

Ich kann es nicht verbessern, es ist vom Markt.

Ich kann es nicht auf 2 Charts verwenden, weil ich keine geeigneten Bedingungen finden kann. Es öffnet Aufträge in 2 Richtungen, wenn es 0 von ihnen übrig sind.

Ich habe Ihnen bereits erklärt, wie man es umsetzt und wie man Aufträge in 2 Richtungen eröffnet. Man hat Ihnen bereits gesagt, wie Sie vorgehen müssen.
 
Artyom Trishkin:
Nach der Frage zu urteilen, ist dort nichts weiter erforderlich.
DieProjekte werden immer umfangreicher, Sie sollten versuchen, vorausschauend zu denken.
 
Tapochun:
Die Projekte werden ausgeweitet,

Artyom Trishkin:
Es sollte auf einem Diagramm funktionieren, und das zweite - ein einfaches, das zwei Positionen öffnet - auf dem anderen. Man hat Ihnen bereits gesagt, wie Sie vorgehen müssen.

Sie sind kein bisschen unzureichend.Auf Wiedersehen.

 
Tapochun:
Die Projekte werden immer umfangreicher, man muss versuchen, im Voraus zu denken.

Ja, danke für die Wissenschaft. Ich werde sicher darüber nachdenken...

ZS. Was hindert dann daran, die Prüfung nicht in einer Bedingung, sondern in einer Variablen abzulegen und bereits zu prüfen? Die wahrscheinlich größte Komplexität dieses Projekts in der Zukunft...

Und noch etwas: Wenn das Projekt erweitert wird, kann sich auch die Code-Ausführungszeit erhöhen. Dies hat zur Folge, dass viele Berechnungen durchgeführt werden müssen, nachdem die Daten in die Variable geschrieben wurden. Ist es also nicht möglich, dass zu dem Zeitpunkt, an dem wir eine zweite Prüfung benötigen, der Auftrag bereits geschlossen wurde (z.B. bei einem Stop ... oder Take ...) und das Programm dann einen falschen Wert in der Variablen berechnet?

Genau - wir müssen im Voraus über große Projekte und alle möglichen Situationen, die auftreten können, nachdenken. Ich bleibe also bei meiner Überzeugung, dass man immer die neuesten Daten haben sollte , bevor man sie verwendet. So weit wie möglich.

 

le0nid2014:

Sie sind ein bisschen unzulänglich.Auf Wiedersehen.

Sprechen Sie mit mir? In Ordnung, einen schönen Tag noch. Aber Sie werden zu dem zurückkehren, was ich am Ende vorgeschlagen habe, und sich damit in die Riege der Unzulänglichen einreihen.
Grund der Beschwerde: