Stopped because of Stop Out - Seite 2

 
Christian:

Mein Bild ist vom MT5, kannst du also vergessen.

MT4 stand halt nicht im Text.

Glaube der hat keinen.

Doch, muss er, wenn es diese Funktion gibt: https://docs.mql4.com/common/debugbreak.

Probier mal auf das Menü des Editors, gibt's dort Debug?

DebugBreak - Common Functions - MQL4 Reference
DebugBreak - Common Functions - MQL4 Reference
  • docs.mql4.com
DebugBreak - Common Functions - MQL4 Reference
 
Carl Schreiber:

Doch, muss er, wenn es diese Funktion gibt: https://docs.mql4.com/common/debugbreak.


Dann wird er einen haben.


Also: 

         Debugger nutzen

So mal eben auf die schnelle ein video... https://www.youtube.com/watch?v=qbQ577ubqew

        

Robot Building Tutorials #7 - Debugging in MQL4
Robot Building Tutorials #7 - Debugging in MQL4
  • 2018.05.23
  • www.youtube.com
The expanded course: https://robothouse.teachable.com/p/building-automated-trading-robots https://www.robothousetrading.com/welcome - General Info Find me on...
 
Christian:

Dann wird er einen haben.


Also: 

         Debugger nutzen

So mal eben auf die schnelle ein video... https://www.youtube.com/watch?v=qbQ577ubqew




   Danke...aber in dem Video zeigt er nur, dass er mit der Print Funktion arbeitet. Das hab ich ja auch gemacht... und man sieht dass die Margin >0 ist und somit der Grund für den Abbruch immer nlch unbekannt ist.. 

Das heißt mir ist immer noch unklar was der Grund für den Abbrich ist     

 
Markus Wilhelm:

Sorry, falscher Link,

https://www.youtube.com/watch?v=eRfmbAPR14o

Hättest du aber auch selber lösen können :-)...

https://www.metatrader5.com/de/metaeditor/help/development/debug

Debugging mit dem Metatrader 4
Debugging mit dem Metatrader 4
  • 2017.06.15
  • www.youtube.com
Debugging mit dem Metatrader 4 ist erforderlich, wenn man verborgene Fehler eines ExpertAdvisors finden will, dazu gehören auch ineffizienter Code.
 
Christian:

Sorry, falscher Link,

https://www.youtube.com/watch?v=eRfmbAPR14o

Hättest du aber auch selber lösen können :-)...

https://www.metatrader5.com/de/metaeditor/help/development/debug



Ja das Video habe ich auch gesehen... aber ich kann bei mir nicht mit historischen Daten testen/debuggen... Hab die historischen Daten runtergeladen, habe die Einstellungen (Extras --> Optionen --> Debug) eingestellt.... trotzdem lässt er mich nicht mit historischen Daten debuggen... gibt's da einen Trick?

 
Markus Wilhelm:



Ja das Video habe ich auch gesehen... aber ich kann bei mir nicht mit historischen Daten testen/debuggen... Hab die historischen Daten runtergeladen, habe die Einstellungen (Extras --> Optionen --> Debug) eingestellt.... trotzdem lässt er mich nicht mit historischen Daten debuggen... gibt's da einen Trick?

Ich glaube das geht nicht in MT4 nur in MT5 - aber ich bin mir nicht sicher.
 
Carl Schreiber:
Ich glaube das geht nicht in MT4 nur in MT5 - aber ich bin mir nicht sicher.

Stimmt, hab eben ein MT4 installiert. Debug nur im Live Modus.

Tja , ein alter VW-Käfer hat auch keine USB Buchse.

Zurück zum Problem.

Hast du mal einen Test mit höherem Kontostand versucht ?

Auch diese Einstellungen könnten wichtig sein.


 
Christian:

Stimmt, hab eben ein MT4 installiert. Debug nur im Live Modus.

Tja , ein alter VW-Käfer hat auch keine USB Buchse.

Zurück zum Problem.

Hast du mal einen Test mit höherem Kontostand versucht ?

Auch diese Einstellungen könnten wichtig sein.


Ja hab es auch mit angepassten Einstellungen und höherem Guthaben probiert... das Gleiche...


So ich habe zumindest mal die Stelle raus gefunden wo der Fehler her kommt.

Sobald ich in der ersten Zeile die Bedingung "OrdersTotal()<5" ergänze, kommt der Fehler zustande...


   if((OrdersTotal()>=2 && OrdersTotal()<5 && useTrailingStop==true))
     {
      if(buystopCount<sellstopCount && BreakEvenBuy==0) //long
        {
         for(int b= OrdersTotal()-1; b>=0; b--)
           {
            if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES))
               if(OrderMagicNumber()==MagicNumber && OrderSymbol()==_Symbol)
                  if(OrderType()==OP_BUY && OrderTakeProfit()!=0 && OrderTakeProfit()<Ask+StopLevel*_Point)
                    {
                     bool LONG_SHIFT_OPBUY_TP = OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),Ask+StopLevel*_Point+5*_Point,0,clrNONE);
                    }
            if(OrderType()==OP_SELL&& OrderStopLoss()!=0 && OrderStopLoss()<Ask+StopLevel*_Point)
              {
               bool LONG_SHIFT_OPSELL_SL = OrderModify(OrderTicket(),OrderOpenPrice(),Ask+StopLevel*_Point+5*_Point,OrderTakeProfit(),0,clrNONE);
              }
           }
        };
      if(buystopCount>sellstopCount && BreakEvenSell==0) //short
        {
         for(int b= OrdersTotal()-1; b>=0; b--)
           {
            if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES))
               if(OrderMagicNumber()==MagicNumber && OrderSymbol()==_Symbol)
                  if(OrderType()==OP_SELL && OrderTakeProfit()!=0 && OrderTakeProfit()>Bid-StopLevel*_Point)
                    {
                     bool SHORT_SHIFT_OPSELL_TP = OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),Bid-StopLevel*_Point-5*_Point,0,clrNONE);
                    }
            if(OrderType()==OP_BUY && OrderStopLoss()!=0 && OrderStopLoss()>Bid-StopLevel*_Point)
              {
               bool SHORT_SHIFT_OPBUY_SL = OrderModify(OrderTicket(),OrderOpenPrice(),Bid-StopLevel*_Point-5*_Point,OrderTakeProfit(),0,clrNONE);
              }
           }
        };
     }
 
Markus Wilhelm:

Sobald ich in der ersten Zeile die Bedingung "OrdersTotal()<5" ergänze, kommt der Fehler zustande...


Hä ? ..genauere Information bitte, was du geändert hast.

 
Christian:

Hä ? ..genauere Information bitte, was du geändert hast.



if((OrdersTotal()>=2 && OrdersTotal()<5 && useTrailingStop==true))

oder

if((OrdersTotal()>=2 && useTrailingStop==true))