Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Das Zusammenspiel von OrderSelect() und OrderModify()

Geschrieben

Einen schönen guten Tag, Abend.

 

Ich habe da einige Probleme mit dem Zusammenspiel von OrderSelect() und Order Modify().

 

Habe da so ca. 10 Trades offen und möchte sie anhand eines Trailing-Stops überwachen.

 

Hier ist der Code:

 

total=OrdersTotal();
   //Hier ist der Trailing Stop
 
 
       for(int cnt=0;cnt<total;cnt++)
           {
             OrderSelect(cnt, OrderTicket(),MODE_TRADES);
              if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
                  {
                   if(OrderType()==OP_BUY) // long position is opened
                      {
                               
                       
// check for trailing stop
                        if(TrailingStop>0)
                              {
                                 if(Bid-OrderOpenPrice()>Point*TrailingStop)
                                    {
                                      if(OrderStopLoss()<Bid-Point*TrailingStop)
                                          {
                                            OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                                            return(0);
                                          }
                                     }
                                }
                      }
                      else // go to short position
                         {
                          
// check for trailing stop
                         if(TrailingStop>0)
                                {
                                if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                                    {
                                      if((OrderStopLoss()>(Ask+Point*TrailingStop))||(OrderStopLoss()==0))
                                           {
                                             OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,
                                             OrderTakeProfit(),0,Red);
                                             return(0);
                                           }
                                     }
                                 }
                           }
                       }
                  }
return(0);

Ich bekomme hier dauernd den Fehlercode: OrderModify Error 130 d.h. invalid stops "ungültiger Stop" ??

 

Ich kann damit nichts anfangen, für eure Hilfe im Voraus besten Dank !

Bearbeitet von whipsaw
whipsaw

  • Antworten 51
  • Aufrufe 6,8Tsd
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

Most Popular Posts

  • Ich hab ja mal den "Sich-Selber-Shorten-EA" geschrieben. Dort musste ich auch immer die Gegenpositionen beobachten. Den EA habe ich mal hier drangehängt. Für dich interessant sind diese zwei Funktione

  • int total=OrdersTotal(); for(int cnt=0;cnt<total;cnt++) { if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) == false) continue;

  • Nein, das der Rückgabewert nicht verwendet wird ist kein "Problem" in dem Sinn. Also der Code funktioniert an sich ohne Probleme.   Der Unterschied ist folgender: OrderSelect( ... ) zeigt im Rückgabew

Featured Replies

Geschrieben

//+------------------------------------------------------------------------------------------------+
//|                                      Ernten_C_P_H_4_O.mqh                                      |
//|                           The code should be used for Ernten only                              |
//+------------------------------------------------------------------------------------------------+
//                                                                                                 |
//                                                                                                 |
//+------------------------------------------------------------------------------------------------+
//|   function  :  überprüft ob Buy platziert werden muss, da Short geöffnet oder Buy TP erreicht  |
//+------------------------------------------------------------------------------------------------+
void CheckPendingHedge4Open()                    //                                                |
{                                                //                                                |
 string ip_cSymbol = Markt ;                    //                                                |
 for( int iCnt = OrdersTotal()-1; iCnt >= 0; iCnt-- )     //                                      |
 {                                              //                                                |
   OrderSelect(iCnt, SELECT_BY_POS, MODE_TRADES)         ;//                                      |
   if( OrderSymbol() != ip_cSymbol )            //                                                |
     continue;                                  //                                                |
                                                //                                                |
   if( OrderSymbol() == ip_cSymbol )            //                                                |
       if( OrderType() == OP_SELL )             //  nur aktive Short bekommen einen Hedge         |
       switch( OrderMagicNumber() )             //                                                |
       {                                        //                                                |
         case ER_MAGIC_S21:                     //                                                |
              if(OrderSelect(B21, SELECT_BY_TICKET)==true)//                                      |
              {                                 //                                                |
                   if(OrderCloseTime() > 0)     //                                                |
                        {                       //                                                |
                        Print("C_P_H_4_O :B21 Order war geschlossen und wird nun neu geöffnet");//|
                        Pair1_B21((dAsk + Gap));//                                                |
                        Print("C_P_H_4_O : S21= ",S21,"life => nun Entry B21= ",B21)   ;//        |
                        }                       //                                                |
                   else                         //                                                |
                     Sleep(10); //Print("B21 order ist pending oder aktiv")  ;//                  |
              }                                 //                                                |
              else                              //                                                |
              {                                 //                                                |
                   if (B21 == 0)                //                                                |
                        {                       //                                                |
                        Print("B21 Order ist das 1.mal im Markt")  ;//                            |
                        Pair1_B21((dAsk + Gap));//                                                |
                        Print("C_P_H_4_O : S21= ",S21,"life => nun Entry B21= ",B21)   ;//        |
                        }                       //                                                |
              }                                 //                                                |
           break;                               //                                                |
/*        case ER_MAGIC_S22:                     //                                                |
           break;                               //                                                |
         case ER_MAGIC_S23:                     //                                                |
           break;                               //                                                |
         case ER_MAGIC_S24:                     //                                                |
           break;                               //                                                |
         case ER_MAGIC_S25:                     //                                                |
           break;                               //                                                |*/
         default:                               //                                                |
           Print("alles ruhig hier, S21= ",S21," B21= ",B21)       ;//                            |
           break;                               //                                                |
       }                                        //                                                |
 }                                              //                                                |
 return                                        ;//                                                |
}                                                //                                                |
                                                //                                                |
//+------------------------------------------------------------------------------------------------+

 

Mythos, noch einmal vielen Dank für die investierte Zeit !

 

 

Kleinerbroker

 

PS.: Der Befehl Sleep(10) ist reiner Platzhalter, weil ich Else später noch brauche . Der Code ist eine in sich vollständige #Include

PPS.: Es haben sich weitere Varianten ergeben, nämlich der Magicnummer oder dem Comment einen Zähler bei zufügen und danach

dann die History zu durchsuchen . Wer diese Alternativen kennenlernen möchte, der möge mir bitte eine PN schicken .

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.