Einfacher Code für EA benötigt (zwei offene Aufträge ändern) - Seite 5

 
deVries:


Möchten Sie, dass der StopLoss für Kauf- und Verkaufstransaktionen mit demselben Pip geändert wird?

Denken Sie noch einmal darüber nach, ob es das ist, was Sie wollen, und Sie können herausfinden, warum es nicht auf diese Weise modifiziert wird ....

Ändern Sie die Trades auch nicht mit jedem neuen Punkt in die richtige Richtung, sondern wählen Sie einen Trailingstep, um eine Änderung zu ermöglichen (xx Punkte können 10 oder mehr sein, um eine Menge Tradecontext too busy Fehler zu vermeiden)

"!" ist so etwas wie nicht in der Codierung

Im Moment möchte ich nur, dass der TakeProfit bei beiden Geschäften geändert wird, der StopLoss bleibt für das gesamte Geschäft gleich (für die aktuellen Tests jedenfalls).
 

OK, ich habe das Problem gefunden... Die Spanne wird als Anzahl der Punkte zurückgegeben...

Ändern Sie also diese Zeilen...

if(OrderTakeProfit() > Candle23Open - ((TakeProfitModified - 1) * Point) + Spread )      //  check if TakeProfit has already been modified
                  if(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Candle23Open - (TakeProfitModified * Point) + Spread, 0, Blue))

in diese...

if(OrderTakeProfit() > Candle23Open + ((Spread - TakeProfitModified + 1 ) * Point)  )      //  check if TakeProfit has already been modified
                  if(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Candle23Open + ((Spread - TakeProfitModified) * Point) , 0, Blue))
 
RaptorUK:

OK, ich habe das Problem gefunden... Die Spanne wird als Anzahl der Punkte zurückgegeben...

Ändern Sie also diese Zeilen . . .

in diese...

Jetzt funktioniert es, danke! Sowohl die Kauf- als auch die Verkaufstransaktionen werden jetzt geändert, aber aus irgendeinem Grund werden sie einige Male während der Transaktionen geändert, und der Take-Profit scheint manchmal weiter zu gehen, als es die Eingaben erfordern. Dies scheint zu ganzen Zeiten wie 2:00 oder 7:00 zu passieren, ich bin mir nicht ganz sicher, warum dies geschieht, hat es zufällig etwas mit dem Spread zu tun, der sich ständig ändert? Das passiert sowohl bei Kauf- als auch bei Verkaufstransaktionen, also denke ich, dass es nicht am Spread liegen kann. Die einzige Möglichkeit, die mir einfällt, ist, dass sich die Kerze um 23:00 Uhr zu ändern scheint, obwohl das keinen Sinn ergeben würde und ich nicht sicher bin, wie ich das testen könnte.

 
Fügen Sie hier und da ein paar Print-Anweisungen hinzu, um zu sehen, was die Variablen tun, dann können Sie herausfinden, was falsch läuft und es beheben.
 

Ich versuche, dies zu verwenden:

Print(Open [iBarShift(NULL, 0, StrToTime("23:00") )]);

Um zu sehen, ob sich der Eröffnungskurs des Balkens ändert, aber es scheint jedes Mal zufällige Zeiten zu drucken.

Auch an einem der Tage habe ich bemerkt, dass die Trades nicht der Close-All-Regel folgen, um Trades um 22:59 Uhr zu schließen, unabhängig davon, was passiert, ich denke, das hat aufgehört zu funktionieren.

Ich verwende dies

   if (TimeDayOfWeek(TimeCurrent())==5 && TimeCurrent()>=StrToTime("22:59")) { CloseAll(); return(0); }

und dies

void CloseAll()
   {
   for(int cnt=OrdersTotal()-1;cnt>=0;cnt--)
      {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if (OrderMagicNumber()!=MagicNumber) continue;
         
      //
      //
      //
      //
      //
         
      if (OrderType()==OP_BUY || OrderType()==OP_SELL)
         {
         for(int c=0; c<3; c++)
            {
            RefreshRates();
            if (OrderType()==OP_BUY)
                  { double cp = Bid;}  
            else  {        cp = Ask;}
               
            OrderClose(OrderTicket(),OrderLots(),cp,0,Yellow);
            int err=GetLastError();
            if(err==4 || err==136 || err==137 || err==138 || err==146)
               {
               Sleep(5000); continue;
               }  
               break;                     
            }
            break;

Um die Trades zur angegebenen Zeit zu schließen.

 

Ein Beitrag, der ausschließlich in Großbuchstaben verfasst war, wurde entfernt.

Bitte verwenden Sie keine übermäßigen Großbuchstaben, wenn Sie einen Beitrag verfassen, da dies als schreiend und sehr unhöflich angesehen wird.

Grund der Beschwerde: