Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 891

 
Guten Tag, nach dem Deaktivieren und Aktivieren von"EA den Handel erlauben" wird immer eine Position geöffnet, die nicht geöffnet werden sollte. Ich nehme an, dass dies daran liegt, dass die Variablen nicht zurückgesetzt werden. Wie kann ich "Allow EA to trade" aktivieren oder deaktivieren und alle Variablen zurücksetzen, wie sie nach dem Neustart der MT4-Plattform sind?
 
abeiks:
Guten Tag, nach dem Deaktivieren und Aktivieren von "EA den Handel erlauben" wird immer eine Position geöffnet, die nicht geöffnet werden sollte. Ich nehme an, dass dies daran liegt, dass die Variablen nicht zurückgesetzt werden. Wie kann ich alle Variablen nach dem Aktivieren oder Deaktivieren von "EA den Handel erlauben" so zurücksetzen, wie sie nach dem Neustart der MT4-Plattform sind?
Setzen Sie diese Variablen einfach zurück, wenn das Kontrollkästchen deaktiviert ist, und berühren Sie sie nicht mehr, bis ein Benutzer es wieder aktiviert. Achten Sie auf MQLInfoInteger(MQL_TRADE_ALLOWED).
 
evillive:
Sie müssen diese Variablen nur in dem Moment zurücksetzen, in dem das Kontrollkästchen deaktiviert wird, und dürfen sie erst wieder anfassen, wenn ein Benutzer es erneut aktiviert. Achten Sie auf MQLInfoInteger(MQL_TRADE_ALLOWED).
Ich danke Ihnen!
 
evillive:
Sie müssen diese Variablen nur in dem Moment zurücksetzen, in dem das Kontrollkästchen deaktiviert wird, und sie erst wieder berühren, wenn ein Benutzer es wieder aktiviert. Achten Sie auf MQLInfoInteger(MQL_TRADE_ALLOWED).
Gibt es eine Möglichkeit, sicherzustellen, dass der Experte nach IsTradeAllowed()==false entfernt und neu geladen wird (Experte: entfernt; Experte: erfolgreich geladen)?
 
evillive:

Dies ist die gleiche Verzweigung wie if(), sie sieht nur übersichtlicher aus und ist einfacher zu kodieren, wenn drei oder mehr einzelne Auswahlmöglichkeiten von ganzen Zahlen zur Verfügung stehen. Wenn es nur zwei Varianten gibt oder nicht-ganzzahlige Ausdrücke verglichen werden, dann nur if(). Außerdem können Sie mit if() mehrere Optionen kombinieren (if( option1 && option2 || option3 ) {action;}), während switch dies nicht direkt tun kann, sondern nur jeweils eine.

Schalter
if()
Schalter (x)
{
Fall 1: Aktion bei Option 1; break;
Fall 2: Aktion bei Option 2; break;
Fall 3: Aktion bei Option 3; break;
default: Standardaktion; break;
}
if( option1 ) { Aktion in Option 1; }
else if( option2 ) { Aktionen nach Option 2; }
else if( option3 ) { Aktionen nach Option 3; }
else { Standardaktion; }

Ich danke Ihnen! In der Anleitung habe ich einen solchen Vergleich nicht gesehen, aber vielleicht lese ich auch nur in der falschen Reihenfolge.

Jedenfalls ist das genau das, was ein Anfänger von einem Fachmann erwartet - die Offenlegung von Feinheiten, die man weder in einem Lehrbuch noch in einem Nachschlagewerk finden kann.

 
Nochmals die Frage: Gibt es eine Anbringungsbeschränkung (siehe SRC) in der if-else-Schleife?
if()
   {if()
      {}
      else
      {}
    }
    else
    {
    if()
      {}
      else ...и т.д....
     }             
Ich kann keinen Grund finden, warum ein solch primitiver Code nicht funktionieren sollte.
 
rapid_minus:
Nochmals die Frage: Gibt es eine Beschränkung für Anhänge (siehe SRC) in der if-else-Schleife? Ich kann keinen Grund finden, warum solch primitiver Code nicht funktioniert.
Was genau funktioniert nicht?
 
evillive:
Was genau ist falsch?


Alles :( Beim Testen öffnet die Position sofort nach Kriterien, die nicht im Code angegeben sind, und schließt sie erst am Ende des Tests, d.h. sie ignoriert alle im Code vorgeschriebenen Bedingungen für das Schließen.

Es ist nicht klar, ob die Schließungsbedingungen falsch angegeben sind oderdie geöffnete Position nicht lesbarist.

 
rapid_minus:


Alles :( Während des Tests wird die Position sofort geöffnet, nach Kriterien, die nicht im Code angegeben sind, und erst am Ende des Tests geschlossen, d.h. alle im Code vorgeschriebenen Bedingungen für das Schließen werden ignoriert.

Es ist nicht klar, ob die Schließungsbedingungen falsch definiert sind oder die offene Position nicht lesbar ist.

In solchen Fällen, wenn nicht klar ist, wo das Problem liegt, empfiehlt es sich, nach jeder Aktion einen Ausdruck mit einer Beschreibung der Aktion (und ggf. einer Fehlerausgabe) einzufügen.
 
evillive:
In solchen Fällen, in denen nicht klar ist, wo das Problem liegt, wird empfohlen, nach jeder Aktion einen Ausdruck einzufügen, der die Aktion (und ggf. die Fehlerausgabe) beschreibt.

Ich danke Ihnen. Das ist eine Menge Arbeit, aber es sieht so aus, als ob ich den Fehler sonst nicht finden könnte.