Fractal Break Out-Stuck - Seite 2

 

Ich erhalte derzeit den Fehler "}" am Ende der Klammer.


Aber ich habe die Funktionen erneut überprüft und sie werden alle korrekt verarbeitet.


Ich habe eine andere Methode ausprobiert und erhielt weiterhin denselben Fehler.

 
ZacharyRC:

Derzeit erhalte ich den Fehler mit der abschließenden Klammer "}".


Aber ich habe die Funktionen erneut überprüft und sie werden alle korrekt verarbeitet.


Ich habe es auf eine andere Weise versucht und erhalte weiterhin denselben Fehler.


Ich habe den Fehler gefunden, nevermind!
 
ZacharyRC:

Hallo deVries:


Ich stoße in meinem endgültigen Code auf Probleme, wenn ich versuche, einen modifizierten Stop-Loss nach so vielen Pips auf den Breakeven zu setzen.


Siehst du einen eklatanten Fehler?

Sie müssen dies noch einmal lesen:Was sind Funktionsrückgabewerte? Wie verwende ich sie? Wollen Sie nicht wissen, was mit Ihrer OrderModify() passiert? Was passiert, wenn Ihre OrderSelect() fehlschlägt?

 
if(OrdersTotal()>1)
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==(OP_BUY)&&(Move.BE))
{

Dies ist nicht der richtige Weg, um die Trades Ihres EAs zu erhalten

Sie können nicht sicher sein, dass die Position 0 von Ihrem EA stammt, den Sie verwalten müssen.

Sie müssen immer eine Schleife verwenden, um alle offenen Trades durchzugehen und dann auszuwählen.

Ihr Symbol(), mit dem der EA handelt, und die MAGICNUMBER, die Sie mit Ihrem EA angegeben haben

.

Mein Weg ist wie

 

 for(i = OrdersTotal()-1; i >= 0 ; i--)         //always counting down checking trades
    {
     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;     // if false we abort the loop
     if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol()) continue;   //if selected trade not symbol or magicnumber next one
 
RaptorUK:

Sie müssen dies noch einmal lesen:Was sind die Rückgabewerte von Funktionen? Wie verwende ich sie? Wollen Sie nicht wissen, was mit Ihrer OrderModify() passiert? Was passiert, wenn Ihre OrderSelect() fehlschlägt?


Ich werde heute Abend auf jeden Fall noch einmal nachlesen, ich habe es noch nicht ganz begriffen.
deVries:

Dies ist nicht der richtige Weg, um die Trades Ihres EAs zu erhalten

Sie können nicht sicher sein, dass die Position 0 von Ihrem EA stammt, den Sie verwalten müssen

Verwenden Sie immer eine Schleife, um alle offenen Trades zu erhalten und wählen Sie dann auf diese Weise

Ihr Symbol(), mit dem der EA handelt, und die MAGICNUMBER, die Sie mit Ihrem EA angegeben haben

.

Mein Weg ist wie

Ich habe letztes Mal eine for()-Schleife verwendet und hatte ein paar Fehler und habe es aufgegeben. Wird es erneut versuchen und erneut lesen Text.


Vielen Dank, meine Herren.

 
RaptorUK:

Sie müssen dies noch einmal lesen:Was sind die Rückgabewerte von Funktionen? Wie verwende ich sie? Wollen Sie nicht wissen, was mit Ihrer OrderModify() passiert? Was passiert, wenn Ihre OrderSelect() fehlschlägt?


Ich fühle mich heute ein wenig langsam! Nachdem ich das verinnerlicht habe, wird mir klar, dass die MQL4-Sprache der beste Partner für die Fehlersuche sein kann, nicht das Message Board.



TY RaptorUK!

 
ZacharyRC:

Ich fühle mich heute ein wenig langsam! Nachdem ich das verinnerlicht habe, wird mir klar, dass die Sprache MQL4 der beste Partner für die Fehlersuche sein kann, nicht das Message Board.

Genau, 100% richtig :-)
 
deVries:

Dies ist nicht der richtige Weg, um die Trades Ihres EAs zu erhalten

Sie können nicht sicher sein, dass die Position 0 von Ihrem EA stammt, den Sie verwalten müssen.

Sie müssen immer eine Schleife verwenden, um alle offenen Trades durchzugehen und dann auszuwählen.

Ihr Symbol(), mit dem der EA handelt, und die MAGICNUMBER, die Sie mit Ihrem EA angegeben haben

.

Mein Weg ist wie

Ahhhh ich verstehe, das erlaubt mir, meine Trades durchzugehen und zu sagen, welches welches ist und die Magic Numbers abzugleichen. Schleife ist der beste Weg bei weitem.

 
ZacharyRC:

Ahhhh ich verstehe, das erlaubt mir, durch meine Trades zu gehen und zu sagen, welches welches ist und mit den Magic Numbers übereinstimmt. DieSchleife ist bei weitem die beste Methode.

Je mehr man sie benutzt, desto mehr Tricks lernt man mit ihr zu machen....
 

Ich habe immer noch Schwierigkeiten. Ich habe Fehler durchgeführt, um herauszufinden, warum.


Journal hat berichtet:

1) Fehler 4051=Fehlerhafte Parameter

2) Ungültiges Ticket zum Ändern der Bestellung

//----------------------------------------------//
//-----------------EXITING ORDERS---------------//


for(int i=OrdersTotal()-1; i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)  break;


if(OrderMagicNumber()!=MagicNumber || OrderSymbol() !=Symbol()) continue;

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) Print(GetLastError(),i);
if(OrderType()==OP_BUY)
{

 if(Move.BE && StopLoss > 0) 
 {
   if(Bid - OrderOpenPrice() >= Point * StopLoss)
     {
       if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) 
        {
                  OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red);
                  Print("Cant Modify Order"+GetLastError(),i);
 }
  }
   }
    }
 else{
 
    if(Move.BE && StopLoss > 0) {
               if(OrderOpenPrice() - Ask >= Point * StopLoss)
                {
                  if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo)
                   {
                  OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
                  Print("Cant Modify Order"+GetLastError(),i);
}
 }
  }
   }
    }