Il che impedisce al consulente di fare soldi. - pagina 6

 
valenok2003: Roma, non mentire, la prima volta che hai scritto
while(OrderSelect(ticket,SELECT_BY_TICKET)==false)

Sbagliato. Tutto il ciclo è così:

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

È vero, il commento è sbagliato. Ma il ciclo è esattamente così: finché non viene selezionato un ordine - aspetta 100 millisecondi.

Vero, se non c'è nessun ordine con biglietto già (chiuso), Roma entrerà in un ciclo infinito. Molto probabilmente questo controllo viene fatto prima.

 
Roman.:

Questo costrutto era originariamente nel post di qualcuno con la domanda: Come faccio a sapere il prezzo di un ordine? la risposta che ho usato in questo ciclo - vedi sopra.

Ecco la risposta a questa domanda:

Eccoti servito, Roman. A volte il biglietto torna indietro e l'ordine è sparito. E tu sarai appeso come un tesoro.

Inoltre, deve essere lì.

// Se l'ordine NON è selezionato

PS Io e te abbiamo discusso questo argomento di recente.

 

Oh, andiamo.....

Cosa intendi per "cosa succederà"? Non capisco affatto questa domanda....

Leggete il documento - costanti/errori standard - dice tutto...

Se non riesci a trovarlo - errore 4108

 
valenok2003:



Roma, non mentire, la prima volta che hai scritto

questo design

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

fa parte del ciclo di lavoro online, lo uso per ottenere le caratteristiche dell'ordine selezionato

// ------------------------------------------------Ищем наш ордер---------------------------------
   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);
   }
   
 
 

Ho già scritto quante volte, dopo aver selezionato un ordine, controlla il tempo di chiusura, se !=0 allora l'ordine è già chiuso.

"E questa gente mi insegna a scaccolarmi..."

 

E quando si blocca nel tuo ciclo... Mamma cara.

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

 
FAQ: "E queste persone mi insegnano a scaccolarmi..."

Mi viene in mente:

Il figlio assiste accidentalmente ai suoi genitori che fanno sesso e pensa: "E questa gente mi proibisce ancora di mettermi le dita nel naso...".

 
Mathemat:

Sbagliato. Tutto il ciclo è così:

È vero, il commento è sbagliato. Ma il ciclo è esattamente così: finché non viene selezionato un ordine, aspetta 100 millisecondi.
Sì, ho dimenticato di aggiungere una riga in questo post, ma ce n'è una in altri post, dove la risposta completa a questa domanda è...
 

Amico, quando imparerai a non scrivere i "se" composti, sei troppo pigro per aggiungere una riga, e quando inizierai ad analizzarlo, ti spaccherai la testa contro il muro.

E inoltre, ci vuole più tempo di due distinti

 
FAQ:

Ho già scritto quante volte, dopo aver selezionato un ordine, controlla il tempo di chiusura, se !=0 allora l'ordine è già chiuso.

"E questa gente mi insegna a scaccolarmi..."

Sì, a proposito, ora mi sto ricordando...

Se ne hai qui intorno, puoi copiarlo... con un controllo del tempo, qualcosa come - se non è uguale a/uguale a zero... perché solo gli ordini chiusi hanno un tempo di chiusura...