offene Aufträge mit 10pip Gap - Seite 4

 
    //datetime lastTime  = 0;
    double highest_open_price=0;
    //int      lastTicket = -1; // None open.
    int      highest_Ticket = -1; // None open.
    for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
        OrderSelect(0, SELECT_BY_POS,MODE_TRADES)                 // Only my orders w/
    &&  OrderMagicNumber()  == 0           // my magic number
    &&  OrderSymbol()       == Symbol()                 // and my pair.
    //&&  OrderOpenTime()     >=  lastTime
    &&  ?????????()     >=  highest_open_price
    ){
      highest_open_price= ????????();
      highest_Ticket = OrderTicket();
    }

Wie ich schon sagte - einfache Substitution

 
GumRai:

Wie ich sagte - einfache Substitution



Danke GumRai: aber meine weitere Frage ist, ich glaube, dass ?????????() OrderOpenTime() ist

wie mache ich es nun mit meiner Handelslogik, wie Sie früh zeigen




      
rsi1=iRSI(NULL,0,14,PRICE_CLOSE,1);
rsi2=iRSI(NULL,0,14,PRICE_CLOSE,0); 
     
 if(rsi2>70 && Ask > High[1] + (10*pips2dbl) )
  {
      Opn_S=true;
     } 
     else 
   if(rsi2>70 && Ask < High[1] + (10*pips2dbl)) 
      {
      Opn_S=false;
     }

 Here you give value to Opn_S, but you do nothing with it







   lastTicket=OrderSend(Symbol(),OP_BUY,mylot(),Ask,0,0,0,"My Comment",magic,0,Green);

Hier gibt es keine Bedingungen für das Öffnen einer Order und Sie überschreiben den Wert von lastTicket.

Ihr Code hat keine Logik, es sind nur 3 Codeabschnitte, die nichts miteinander zu tun haben

===========================================================================================================================




HHH

Ich frage deshalb, weil ich das Ergebnis wie folgt arrangiert habe: BELOW code....... Es führte zu dem, was ich wollte, aber das Problem ist, dass es mehrere Aufträge in einer einzigen Zeile öffnet. siehe die ERGEBNISBILDER oben

// Orders accounting 
   datetime lastTime  = 0;
    double highest_open_price=0;
    lastTicket = -1; // None open.
    int      highest_Ticket = -1; // None open.
    for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
        OrderSelect(0, SELECT_BY_POS,MODE_TRADES)                 // Only my orders w/
    &&  OrderMagicNumber()  == 0           // my magic number
    &&  OrderSymbol()       == Symbol()                 // and my pair.
    &&  OrderOpenTime()     >=  lastTime
    &&  OrderOpenTime()     >=  highest_open_price
    ){
      highest_open_price= OrderOpenTime();
      highest_Ticket = OrderTicket();
    }





        
 if(Bid > High[1] && OrderOpenTime()     > highest_open_price)
  {
      Opn_S=true;
     }   
CurrentTime= Time[1];





if(Opn_S==true)               // No opened orders +
        {                                       // criterion for opening Sell
         RefreshRates();                   // Refresh rates     
         lastTicket=OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",magic,0,Red);
         if(lastTicket>0)
      
           {
            Comment("Opened order Sell ","#",lastTicket);
            return(0);                                 // Exit start()
           }
         if(Fun_Error(GetLastError())==1) // Processing errors
            continue;                             // Retrying
         return(0);                                   // Exit start()
        }
      break;                                    // Exit while
     }
//--------------------------------------------------------------- 9 --------------------------------------
   return(0);                                       // Exit start()
  }


 

Es gibt keine Logik, da Ihr Code aus 3 Abschnitten besteht, die nichts miteinander zu tun haben.

Ich kann nur zu dem Schluss kommen, dass Sie Codeabschnitte aus anderen EAs kopiert und eingefügt haben, in der vergeblichen Hoffnung, dass sie zusammen funktionieren werden

"Ich glaube, dass ?????????() OrderOpenTime() ist"

Das beweist, dass Sie keine Ahnung haben, was die Schleife macht, und dass Sie sie nicht geschrieben haben.

 

GumRai bitte das ist mein ganzer Code vor allem öffnet nur verkaufen. wie Sie sagten, alle diese Unterbrechungen kam als Ergebnis der Ermöglichung meiner ea zu öffnen mehrere um und Schleifen Sache vor ist nur einfach lopped meine Aufträge wie diese


{
   int cnt;
   int NumTrades;   // Number of buy and sell trades in this symbol
   
   NumTrades = 0;
   for (cnt = OrdersTotal()-1 ; cnt >=0 ; cnt--)
     {
     if(OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES)==true)
      if ( OrderSymbol() != Symbol()) continue;
      if ( OrderMagicNumber() != magic)  continue;
      
      if(OrderType() == OP_BUY )  NumTrades++;
      if(OrderType() == OP_SELL ) NumTrades++;
             
     }
    
  }




then getting my ea to work with my loop by just adding  if(NumTrades==0 && Opn_B==true) // No new orders +

this ensures my ea to open just 1 order on a giving chart but now i want to expand my ea to open more than one order i remove  NumTrades==0 

to let the ea open order unrestricted with my ordersend as little i know now i know we can loop through order for so many reason and when it comes
to the looping for highest order on the chart i dont know that well,but can do it if example is giving. please bear with my little coding knowledge and put me through

below is my ea please assist me 
 
Bitte warten Sie auf Ihre Antwort
 

Ich bin mir nicht sicher, ob dieser EA nur schlecht geschrieben ist, unvollständig oder ein funktionierender EA mit entfernten Code-Blöcken.

Sie sagen, es öffnet vor allem Verkäufe, gut ich sehe nicht, dass es jemals einen Kauf öffnen kann.

Die wichtigste Bedingung für die Eröffnung eines Kaufs ist

if(Opn_B==true)

Die einzige andere Stelle im Code, an der Opn_B im Code erscheint, ist

Opn_B=false

Es kann also nirgendwo auf true gesetzt werden.

Übrigens:

   while(true) // Orders closing loop

Eine Schleife, die nur Aufträge öffnet - toller Kommentar.

   double highest_open_price=0;
   int    highest_Ticket=-1;
   for(int pos=OrdersTotal()-1; pos>=0; pos--)
      if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
         && OrderMagicNumber()==0           // my magic number
         && OrderSymbol()==Symbol() // and my pair.
         && OrderOpenPrice()>=highest_open_price)
        {
         highest_open_price=OrderOpenPrice();
         highest_Ticket=OrderTicket();
        }
 
GumRai:

Ich bin mir nicht sicher, ob dieser EA nur schlecht geschrieben ist, unvollständig oder ein funktionierender EA mit entfernten Code-Blöcken.

Sie sagen, es öffnet vor allem Verkäufe, gut ich sehe nicht, dass es jemals einen Kauf öffnen kann.

Die wichtigste Bedingung für die Eröffnung eines Kaufs ist

Die einzige andere Stelle im Code, an der Opn_B im Code erscheint, ist

Es kann also nirgendwo auf true gesetzt werden.

Übrigens:

Eine Schleife, die nur Aufträge öffnet - toller Kommentar.

Danke für die Überprüfung meines Codes und das Aufspüren von Empfehlungen und Korrekturen

GumRai: das ist, warum ich Ihnen gesagt, dann, dass viele Menschen vielleicht nicht verstehen, aber ich tue, und Sie sind in der Lage zu verstehen, weil Sie verstehen, Code sehr gut,

Darüber hinaus habe ich meinen Grund für die Herstellung der ea offen nur verkaufen, mein Problem mit diesem Antrag machte meine ea rau, aber wenn ich die Lösung habe ich alles wieder zu reorganisieren.

Schauen Sie sich die ea ich entfernen Bedingungen zu schließen und auch kaufen Bedingung, die die ea sieht unvollständig macht

.why is because i want to make sure it fulfill this conditions......opening order in

höchsten offenen Preis im aktuellen Chart-Symbol und öffnen Sie 10pip darüber, wenn seine kaufen/öffnen 10pips unten, wenn seine verkaufen.

Ich entferne die Close-Bedingungen, weil ich nicht möchte, dass der Backtest die Trades schließt, während ich teste, um sicherzustellen, dass der Code richtig ist, bevor eine andere Bedingung in Kraft gesetzt wird.

Sobald die Lösung erreicht ist, werde ich meine Ea wieder mit entsprechenden Abschlussbedingung organisieren, weshalb ich Sie bitte, mir mit diesem Problem zu helfen, obwohl Ihre Hilfe.




 

Nun, ich habe Ihnen den Code gegeben, um den Auftrag mit dem höchsten offenen Preis zu finden.

Nun müssen Sie nur noch prüfen, ob der Preis mindestens 10 Pips über diesem Wert liegt, und wenn ja, einen weiteren Auftrag eröffnen

 

bitte GumRai: wie kann ich die Schleife in der ea, weil die Art und Weise habe ich es nicht in backtest...... arbeiten

wie habe ich es gemacht? ich habe highest_open_price und highest_Ticket verwendet, um einige meiner Bedingungen in die ea zu schreiben, aber es gab mir nicht das gewünschte Ergebnis im Backtest

Vielleicht übersehe ich etwas?


  double highest_open_price=0;
   int    highest_Ticket=-1;
   for(int pos=OrdersTotal()-1; pos>=0; pos--)
      if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
         && OrderMagicNumber()==0           // my magic number
         && OrderSymbol()==Symbol() // and my pair.
         && OrderOpenPrice()>=highest_open_price)
        {
         highest_open_price=OrderOpenPrice();
         highest_Ticket=OrderTicket();
        }
 
Ja, Sie zeigen den Code nicht an. Woher sollen wir wissen, was Sie getan oder nicht getan haben?