Dadurch kann der Berater kein Geld verdienen. - Seite 6

 
valenok2003: Roma, lüg nicht, das erste Mal, als du schriebst
while(OrderSelect(ticket,SELECT_BY_TICKET)==false)

Falsch. So ist der ganze Zyklus:

while(OrderSelect(ticket,SELECT_BY_TICKET)==false)       // Если ордер выбран
                Sleep(100);        

Stimmt, die Bemerkung ist falsch. Aber der Zyklus ist genau so: bis ein Auftrag ausgewählt wird - 100 Millisekunden warten.

True, wenn es keinen Auftrag mit bereits geschlossenem Ticket gibt, wird Roma in eine Endlosschleife eintreten. Höchstwahrscheinlich wird diese Prüfung früher durchgeführt.

 
Roman.:

Dieses Konstrukt stand ursprünglich in einem Beitrag von jemandem mit der Frage: Wie erkenne ich den Preis einer Bestellung? Die Antwort habe ich in dieser Schleife verwendet - siehe oben.

Hier ist die Antwort auf diese Frage:

Da hast du es, Roman. Manchmal kommt das Ticket zurück und die Bestellung ist weg. Und du wirst wie ein Süßer hängen.

Außerdem muss es dort sein.

// Wenn der Auftrag NICHT ausgewählt ist

PS: Sie und ich haben kürzlich über dieses Thema gesprochen.

 

Oh, komm schon.....

Was meinen Sie, was passieren wird? Ich verstehe diese Frage überhaupt nicht....

Lesen Sie das Dokument - Standardkonstanten/Fehler - da steht alles drin...

Wenn Sie es nicht finden können - Fehler 4108

 
valenok2003:



Roma, lüg nicht, das erste Mal, als du schriebst

diese Ausführung

while(OrderSelect(ticket,SELECT_BY_TICKET)==false)

ist ein Teil des Zyklus, um online zu arbeiten, ich benutze es, um die Merkmale der ausgewählten Bestellung zu erhalten

// ------------------------------------------------Ищем наш ордер---------------------------------
   int orderType;
   for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--)
   {
      if (!OrderSelect(orderIndex, SELECT_BY_POS))     continue;
      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber)) continue;
      orderType = OrderType();
      if ((orderType != OP_BUY) && (orderType != OP_SELL)) continue;
          ticket = OrderTicket( );                         // Номер ордера
          orderLots = OrderLots();                         // Lots   
          orderProfit = OrderProfit() + OrderSwap();       // Profit
          Price = OrderOpenPrice();                        // Цена открытия рыночного ордера
          SL =  OrderStopLoss();                           // Значение StopLoss ордера
          TP = OrderTakeProfit();                          // Значение TakeProfit ордера          
          if (ticket>0)                                    // Если позиция открылась
              {
                while(OrderSelect(ticket,SELECT_BY_TICKET)==false)       // Если ордер выбран
                Sleep(100);                                 
                double OpenPrice=OrderOpenPrice();
       // Print("OrderTicket()=",OrderTicket(),  "OrderOpenTime()=",OrderOpenTime()); 
       // Print("TimeLocal()=",TimeLocal());                                                                    
                     //---------------------Запоминаем значения сл и тп ордера                     
                if (orderType == OP_BUY) 
                   {                
                     
                   }
            
                if (orderType == OP_SELL) 
                   {        
                     
                   }   
                            
               }
             
     // Проверка на предельную просадку      
      double loss = - ((orderProfit * 100.0) / AccountBalance());
      if (loss > MaxLoss)
      {
         Print ("MaxLoss");
         CloseAllOrders(MagicNumber);
         IsExpertFailed = true;
         return (0);
      }  
        
      return (0);
   }
   
 
 

Ich habe bereits geschrieben, wie oft ich nach der Auswahl eines Auftrags die Schlusszeit prüfe, wenn !=0, dann ist der Auftrag bereits geschlossen.

"Und diese Leute lehren mich, in der Nase zu bohren..."

 

Und wenn es in Ihrem Kreislauf stecken bleibt... Liebe Mama.

Вот эта строка вашше не очем : if (!OrderSelect(orderIndex, SELECT_BY_POS)) continue;

 
FAQ: "Und diese Leute bringen mir bei, wie man in der Nase bohrt..."

Das kommt mir in den Sinn:

Der Sohn wird zufällig Zeuge, wie seine Eltern Sex haben und denkt: "Und diese Leute verbieten mir immer noch, in der Nase zu bohren...".

 
Mathemat:

Falsch. So ist der ganze Zyklus:

Stimmt, die Bemerkung ist falsch. Aber der Zyklus ist genau so: bis ein Auftrag ausgewählt wird, 100 Millisekunden warten.
Ja, ich habe vergessen, in diesem Beitrag eine Zeile hinzuzufügen, aber es gibt eine in anderen Beiträgen, wo die vollständige Antwort auf diese Frage steht...
 

Mann, wann lernst du endlich, keine zusammengesetzten Wenns zu schreiben, du bist zu faul, eine Zeile hinzuzufügen, und wenn du anfängst, es zu analysieren, schlägst du deinen Kopf gegen die Wand.

Und außerdem dauert es länger als zwei getrennte

 
FAQ:

Ich habe bereits geschrieben, wie oft ich nach der Auswahl eines Auftrags die Schlusszeit prüfe, wenn !=0, dann ist der Auftrag bereits geschlossen.

"Und diese Leute lehren mich, in der Nase zu bohren..."

Ja, übrigens, jetzt fällt es mir wieder ein...

Wenn Sie hier welche haben, können Sie das kopieren... mit einer Zeitkontrolle, z.B. - wenn sie nicht gleich/gleich Null ist... denn nur geschlossene Aufträge haben eine Schlusszeit...

Grund der Beschwerde: