[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 46

 

Wenn Sie die Funktion kennen, mit der Sie den Gesamtsaldo des Verlusts der geschlossenen Positionen durch SL und den Gesamtsaldo der offenen gewinnbringenden Geschäfte berechnen können, schreiben Sie bitte.

Die Berechnung des Verlustsaldos sollte mit dem letzten maximalen Einzahlungswert beginnen.

 

Guten Tag!!! Meine Funktion ist das Fluchen mit vierzig Schimpfwörtern - ich wusste offensichtlich nicht sehr viel und habe auch vergessen, wie man sich das ausdenkt

void  SELL { double Price1_SELL= (Bid-Dist*Point) ; double TP1_SELL=Price1_SELL-TP*Point; double SL1_SELL=Price1_SELL+SL*Point;
   
   double  Price2_SELL= (Price1_SELL -Dist*Point) ;double   TP2_SELL=Price2_SELL-TP*Point;double   SL2_SELL=Price2_SELL+SL*Point;
   
   double  Price3_SELL=(Price2_SELL -Dist*Point) ; double  TP3_SELL=Price3_SELL-TP*Point; double  SL3_SELL=Price3_SELL+SL*Point;
   
   double  Price4_SELL= (Price3_SELL -Dist*Point) ; double  TP4_SELL=Price4_SELL-TP*Point; double  SL4_SELL=Price4_SELL+SL*Point;
   
   double  Price5_SELL= (Price4_SELL -Dist*Point) ;double   TP5_SELL=Price5_SELL-TP*Point; double  SL5_SELL=Price5_SELL+SL*Point;}
 
Dimka-novitsek:

Guten Tag!!! Meine Funktion ist das Fluchen mit vierzig Schimpfwörtern - ich wusste offensichtlich nicht sehr viel und habe auch vergessen, wie man sich das ausdenkt


Diman! Gute Nacht! Du brauchst eine Pause, nicht für eine Funktion, sondern für irgendeinen Blödsinn, den du geschrieben hast...

 
Also sagte ich, ich erinnere mich nicht. Ich werde es zu Ende bringen. Befehle. Was ist mit dem Compiler los?
 
Dimka-novitsek:
Ich sage Ihnen, ich erinnere mich nicht. Ich schreibe es rein. Befehle. Was mag der Compiler nicht?

So werden die F-Is nicht geschrieben. Lesen Sie das Lehrbuch.

 
Ich danke Ihnen!!! Lesen.
 
А. Die Klammern waren ihr nicht genug!
 

Hallo, mein Expert Advisor setzt Pending Stops. Bei der Überprüfung im Tester funktioniert nur SELL_STOP, anstelle von BUY_STOP erscheint ein Fehler Order Send error/ Error opening Buy order:130.

extern int TrailingStop=30;
//-----------------------------------------------------------------------------------------------+
for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELLSTOP &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>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))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
              }
           }
        }
     }

   
   return(0);

Helfen Sie mir, den Grund zu finden!

 

Der Grund ist ein Mangel an Logik!

for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELLSTOP &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
Wie ist das zu verstehen? Wenn CELLSTOP, was hat dann das BAI damit zu tun?
 
Twilight:

Woher weiß ich, ob die letzten 1-2-3-Aufträge verloren waren?

Und ganz allgemein: Woher weiß ich, was die letzte Bestellung war?


Kürzlich habe ich eine Funktion geschrieben, die im Falle des letzten verlorenen Auftrags den Typ dieses Auftrags zurückgibt. Mit anderen Worten: Wenn fHistory() == 0 ist, war der letzte Verlustauftrag ein Kaufauftrag, fHistory() == 1 ist der letzte Verlustauftrag ein Verkaufauftrag. Wenn wir die profitablen Aufträge verfolgen wollen, dann ändern Sie das Vorzeichen in der Zeile wie folgt: if(OrderProfit() > 0 ).

//+----------------------------------------------------------------------------+
// Прибыльно или убыточно закрылся последний ордер, и возврат типа такого ордера
int fHistory(){
  for(int i=OrdersHistoryTotal(); i >= 0; i--){              // Выборка в истории
     if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true){   // Если есть следующий в истории
        if(OrderMagicNumber()!=magN) continue;               // Ордера не нашего эксперта
        if(OrderProfit() < 0 ) return (OrderType());         // Если убыток по посл.ордеру вернем тип ордера
     }
  }
  return(-1);
}

Die Variable magN ist die global deklarierte magische Ordnung.

Grund der Beschwerde: