[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 277

 
Pyro:

Você pode me dizer por que a OrderOpenPrice não funciona? A tarefa é procurar uma ordem no pool a um determinado preço e, se não estiver lá, colocar a ordem e colocar uma bandeira que tenha sido colocada.


Use a função ready-made

Função ExistPosByPrice().


https://www.mql5.com/ru/forum/131859/page2#434212
 
artmedia70:

Leia a última linha do meu post. Quem disse que eu estava escrevendo um exemplo final?

O resto são as verdades simples. Escreva seu próprio livro didático.

Esclarecido não para você. Meu posto é puramente para iniciantes. Portanto, não há necessidade de se ofender.
 

Eu não posso colocar o sinal de divergência do indicador no Expert Advisor.

Indicador FX5_Divergência_V2.1.mq4


Como tirar a seta do indicador?

 
bolt:
Esclarecido não para você. Meu posto é exclusivamente para os recém-chegados. Portanto, não há necessidade de se ofender.
Ofendido? Deus me livre! Houve um comentário em meu post, respectivamente, e o tratamento é percebido como o autor do post comentado. Tudo está bem.
 
artmedia70:

Se você tiver apenas um pedido, ele pode funcionar, mas se você ainda o abrir manualmente, não será o mesmo. O número do bilhete deve ser gravado em uma variável e, após selecionar um pedido, comparar seu bilhete com o armazenado:

E em geral, a seleção da ordem deve ser feita usando a função OrderSelect() no laço:

Este é apenas um exemplo para entender, e não um código de trabalho completo, se é que há alguma coisa... :)





Obrigado!)))
 
bolt:

Ao fechar pedidos, se houver mais de um pedido, um ciclo como este deve ser utilizado:



Obrigado também!))
 
Sergey_Rogozin:

Não posso colocar o sinal de divergência do indicador em minha EA.

Indicador FX5_Divergência_V2.1.mq4


Como tirar a seta do indicador?

O 2º e 3º tampões o indicador. A segunda é a seta para cima e a terceira é a seta para baixo. Use iCustom(); com verificação de dados destes buffers.
 
Pyro:

Você pode me dizer por que a OrderOpenPrice não funciona? A tarefa é procurar uma ordem no pool a um determinado preço, e se não estiver lá, colocar a ordem e sinalizá-la como estabelecida.

É mais ou menos assim:

int   dg=MarketInfo(Symbol(), MODE_DIGITS);
orderset=false;
for (int i=0; i<OrdersTotal(); i++) {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
      if (OrderSymbol()!=Symbol())        continue;
      if (OrderType()<2 || OrderType()>5) continue;
      if (OrderMagicNumber()!=Magic)      continue;
      if (NormalizeDouble(OrderOpenPrice()-price,dg)==0) {
         orderset=true;
         break;
         }
      }
   }
if(!orderset) {
   int ticket=OrderSend(Symbol(),OP_SELLLIMIT,baselot,price,3,NULL,price-10,"Comment",0001+i,0,White);
   if (ticket<0) Print("Не удалось выбрать ордер, ошибка ", GetLastError());
   else price=OrderOpenPrice();
   }
Eu escrevi à mão - não me chute... :)
 
artmedia70:
O 2º e 3º tampões o indicador. A segunda é a seta para cima e a terceira é a seta para baixo. Use iCustom(); com verificação de dados destes buffers.
Estes amortecedores estão vazios. Produzir o mesmo valor 27.........., em suma, muitos números que nunca mudam...
 
Sergey_Rogozin:
Estes amortecedores estão vazios. Eles dão o mesmo valor 27.........., em suma, muitos números que nunca mudam...

Eles só mudam na barra com a seta. Pressione Ctrl+D e passe o mouse sobre a tabela de indicadores, observando os dados desses amortecedores. Você me deve uma cerveja :))

ZS. Estes números não são nada além de EMPTY_VALUE (valor de buffer vazio)