[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 464

 
Mepkypuu писал(а) >>
Você pode me dizer por que esta função não funciona? Deve retornar o número de ordens pendentes desde a última ordem bem sucedida.

Assumindo que não há mais de uma posição aberta de cada vez, o seguinte pode ser feito

  int GetLosses ()
   {  
      int Out       = 0;
      int Counter;
      for ( Counter=OrdersHistoryTotal()-1; Counter >=0 ; Counter--)
      {
         OrderSelect( Counter, SELECT_BY_POS, MODE_TRADES);
         if (OrderProfit() > 0)  break;
         Out++;
      }  
      return ( Out);
   }
 
Vinin >>:

Если предположить что одновременно открыто не более одной позиции, то можно сделать так


Infelizmente, não funciona: conta apenas as ordens abertas. Eu não sei qual é o problema, mas provavelmente não está no código.
 
Mepkypuu писал(а) >>

Infelizmente, não funciona: conta apenas as ordens abertas. Não tenho certeza qual é o problema, mas provavelmente não está no código.

Desculpe

  int GetLosses ()
   {  
      int Out       = 0;
      int Counter;
      for ( Counter=OrdersHistoryTotal()-1; Counter >=0 ; Counter--)
      {
         OrderSelect( Counter, SELECT_BY_POS, MODE_HISTORY);
         if (OrderProfit() > 0)  break;
         Out++;
      }  
      return ( Out);
   }
 
Quando a história dos negócios desapareceu, ofereci-me para definir * mostrar toda a história*, mas não existe tal definição, o terminal é o 4º metatrader, usado por vários DTs.
 
kraizislot писал(а) >>
Quando o histórico das transações desaparece, eles me sugeriram que eu definisse *show all history*, mas não existe tal definição, o terminal é o 4º metatrader, usado por vários DTs.

Na janela do histórico da conta você clica com o botão direito do mouse e seleciona todo o histórico

 
Boa tarde, tenho a seguinte pergunta. A função start() na EA é executada após cada tick. O que acontecerá se eu tiver enviado um pedido de OrderSend(), mas a resposta veio dois minutos depois, e alguns carrapatos chegaram nesse meio tempo? Acho que a execução não recomeçará, por exemplo, em outra linha, etc., até que a função start() termine? Quero dizer, não haverá situação quando eu enviar mais dez pedidos durante estes 2 minutos? Ou não será possível executar OrderSend() várias vezes, porque o fio comercial estará ocupado ou algo assim? Obrigado
 
Maxim_M писал(а) >>
Olá, eu tenho a seguinte pergunta. O início da função() no Expert Advisor é executado após cada tick. O que acontecerá se eu tiver enviado um pedido OrderSend(), mas a resposta chega dois minutos depois, e durante esse tempo há vários tiquetaques? Acho que a execução não recomeçará, por exemplo, em outra linha, etc., até que a função start() termine? Quero dizer, não haverá situação quando eu enviar mais dez pedidos durante estes 2 minutos? Ou não será possível executar OrderSend() várias vezes, porque o fio comercial estará ocupado ou algo assim? Obrigado

até que a função de início esteja concluída, o Expert Advisor não esperará por carrapatos, portanto, os novos carrapatos que faltarem antes que a solicitação atual seja concluída não serão processados.

 
Vinin >>:

Сорри

  int GetLosses ()
   {  
      int Out       = 0;
      int Counter;
      for ( Counter=OrdersHistoryTotal()-1; Counter >=0 ; Counter--)
      {
         OrderSelect( Counter, SELECT_BY_POS, MODE_HISTORY);
         if (OrderProfit() > 0)  break;
         Out++;
      }  
      return ( Out);
   }



Aah! Certo! Muito obrigado! Funciona agora.

 
No indicador Fractals os fractais são exibidos a uma certa distância do extrema, como isso pode ser feito em um indicador personalizado?
 
sanyooooook писал(а) >>
No indicador Fractals os fractais são traçados a uma certa distância dos extremos, como fazer isso em um indicador personalizado?

No 3º ou 4º castiçal você coloca um fractal no tampão indicador, se as condições forem cumpridas