MetaTrader 5 herunterladen

Problem mit den Bedingungen bei der Orderausführung

Einloggen oder registrieren, um einen Kommentar zu schreiben
Oliver Jaschok
152
Oliver Jaschok  

Hallo,

Ich möchte das der EA eine Order eingeht wenn folgende Bedingungen zutreffen:

(GoLongSandR=true and(Pattern1=true or Pattern2=true or Pattern3=true)

Das heißt also, wenn GoLongSandR=true ist und mindestens einer der 3 Pattern auch true ist, dann öffne eine Order. Also immer SandR + Pattern(s)

Aber leider öffnet er Orders, wenn egal welcher Parameter zutrifft. Zum Beispiel öffnet er wenn nur GoLongSandR=true ist. Er öffnet wenn Pattern1=true und Pattern3=true (aber nicht GoLongSandR). Er öffnet wenn nur Pattern2=true ist…etc. Manchmal öffnet er auch korrekt mit GoLongSandR=true and Pattern1=true. Was könnte der Fehler sein? Ich hab mal den Code angehangen. Könnt ihr da einen Fehler entdecken?


//--------------------------------------
   // Open Long 
   if(sqIsBarOpen == true) {
      if (((sqGetMarketPosition() == 0) 
      && ((GoLongSandR == true) 
      && ((Pattern1Long == true) 
      || ((Pattern2Long == true) 
      || (Pattern3Long == true))))))
      {
      // Action #1
      sqOpenOrder("NULL", OP_BUY, getOrderSize(MagicLong, OP_BUY ), getOrderPrice(MagicLong), Comment1, MagicLong, "Open Long");

      // Action #2
      sqDrawUpArrow(1);
      }
   }
   //--------------------------------------
   // Open Short 
   if(sqIsBarOpen == true) {
      if (((sqGetMarketPosition() == 0) 
      && ((GoShortSandR == true) 
      && ((Pattern1Short == true) 
      || ((Pattern2Short == true) 
      || (Pattern3Short == true))))))
      {
      // Action #1
      sqOpenOrder("NULL", OP_SELL, getOrderSize(MagicShort, OP_SELL ), getOrderPrice(MagicShort), Comment2, MagicShort, "Open Short");

      // Action #2
      sqDrawDownArrow(1);
      }
   }

Vielen Dank für eure Hilfe! :)

Carl Schreiber
Moderator
7941
Carl Schreiber  
  1. Wenn Du Code postest nutze bitte den SRC-Button!
  2. Deine Ifs haben viele unnötige Klammern, ich vermute da liegt Dein Fehler
  3. Gehe mit den Debugger durch Deinen Code und schau Dir an, welche Variablen haben welchen Wert, wenn Du zu den Ifs kommst
Oliver Jaschok
152
Oliver Jaschok  
Carl Schreiber:
  1. Wenn Du Code postest nutze bitte den SRC-Button!
  2. Deine Ifs haben viele unnötige Klammern, ich vermute da liegt Dein Fehler
  3. Gehe mit den Debugger durch Deinen Code und schau Dir an, welche Variablen haben welchen Wert, wenn Du zu den Ifs kommst

Danke für den Hinweis. Werde ich das nächste Mal beachten.

Hab das Problem lösen können. Hab es versäumt die Boolean zurückzusetzen, darum galten die Bedingungen immer.

Trotzdem danke für deine Hilfe! :)

Einloggen oder registrieren, um einen Kommentar zu schreiben