O que impede o assessor de ganhar dinheiro. - página 6

 
valenok2003: Roma, não minta, a primeira vez que você escreveu
while(OrderSelect(ticket,SELECT_BY_TICKET)==false)

Errado. O ciclo inteiro é assim:

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

É verdade, o comentário está errado. Mas o ciclo é exatamente assim: até que um pedido seja selecionado - esperar 100 milissegundos.

É verdade, se já não houver pedido com bilhete (fechado), Roma entrará em um loop infinito. Muito provavelmente, esta verificação é feita mais cedo.

 
Roman.:

Esta construção estava originalmente no correio de alguém com a pergunta: Como eu sei o preço de um pedido? a resposta que usei neste laço - veja acima.

Aqui está a resposta a essa pergunta:

aí está, Roman. Às vezes o bilhete volta e o pedido já não existe. E você será enforcado como um docinho.

Além disso, tem que estar lá.

// Se o pedido NÃO for selecionado

PS Você e eu discutimos este tópico recentemente.

 

Oh, vamos lá.....

O que você quer dizer com o que vai acontecer? Não entendo de todo esta pergunta....

Leia o documento - constantes/erros padrão - diz tudo...

Se você não conseguir encontrá-lo - erro 4108

 
valenok2003:



Roma, não minta, a primeira vez que você escreveu

este desenho

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

é parte do ciclo de trabalho on-line, eu o utilizo para obter as características da ordem selecionada

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

Já escrevi quantas vezes, após selecionar um pedido, verifique o horário de fechamento, se !=0 então o pedido já está fechado.

"E estas pessoas me ensinam a escolher meu nariz"...

 

E quando fica preso em seu ciclo... Mamãe querida.

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

 
FAQ: "E essas pessoas me ensinam a escolher meu nariz"...

Isso me vem à mente:

O filho testemunha acidentalmente que seus pais fazem sexo e pensa: "E essas pessoas ainda me proíbem de escolher meu nariz...".

 
Mathemat:

Errado. O ciclo inteiro é assim:

É verdade, o comentário está errado. Mas o ciclo é exatamente assim: até que um pedido seja selecionado, aguarde 100 milissegundos.
Sim, esqueci de acrescentar uma linha neste post, mas há uma em outros posts, onde a resposta completa a esta pergunta é...
 

Cara, quando você vai aprender a não escrever "ses" compostos, você é preguiçoso demais para adicionar uma linha, e quando você começa a analisá-la, você vai esmagar sua cabeça contra a parede.

E, além disso, leva mais tempo do que dois

 
FAQ:

Já escrevi quantas vezes, após selecionar um pedido, verificar o horário de fechamento, se !=0 então o pedido já está fechado.

"E estas pessoas me ensinam a escolher meu nariz"...

Sim, a propósito, estou me lembrando agora...

Se você tem algum por aqui, pode copiar isso... com um controle de tempo, algo como - se não for igual a/igual a zero. porque só as ordens fechadas têm um horário de fechamento...