Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1623

 
makssub #:
Olá. Por favor, informe como encontrar o preço de abertura do pedido mais próximo do preço atual. MQL4. Você tem algum exemplo?

Passamos por todas as posições abertas e comparamos o número de pips do preço atual com a abertura de um negócio.

Você pode tomar qualquer exemplo, logo acima há um código - busca de pedidos em um loop.

 
MakarFX #:

O que é EncomendasFechar ?

Veja aqui.

Entendi, obrigado.

 
PapaYozh #:


Não há necessidade de fantasiar. A essência do que acontece é que você chama um método, que é um construtor com um conjunto diferente de parâmetros. Neste caso, nenhum objeto é criado.

Você deve entender a diferença entre uma chamada do construtor e uma chamada do método/função.

PapaYozh #:

Uma chamada semelhante do construtor que também não levará ao resultado desejado:

Por razões de argumento, acrescente um ponteiro à assinatura de um método (construtor ? que é chamado como um método ?), passando um ponteiro por referência

 
Taras Slobodyanik #:

Passamos por todas as posições abertas e comparamos o número de pips do preço atual com a abertura de um negócio.

Você pode tomar qualquer exemplo, logo acima há um código - busca de pedidos em um loop.

Desculpe, não estou escrevendo corretamente novamente. Vou tentar novamente)

Há uma grade de ordens em aberto. Preciso encontrar o preço de abertura (OrderOpenPrice) do pedido mais próximo do preço atual. A fim de continuar a construir a grade, mas minhas ordens são quase caóticas.

Eu entendo como escrever o excesso, mas não consigo expressá-lo corretamente no idioma (sou como um cão, entendo tudo)).

Se você tiver exemplos ou link para exemplos, coloque-os, por favor. MQL4

 
Igor Makanu #:

Você precisa entender a diferença entre uma chamada do construtor e uma chamada do método/função

Por uma questão de argumento, acrescente um ponteiro à assinatura de um método (construtor ? que é chamado como um método ?) e passe-o por referência.

Em Java está tudo bem.

Você também pode chamar o construtor pais do construtor da criança, o único requisito é que o construtor pais seja chamado pelo primeiro comando no construtor da criança.

Na MQL, o problema é que, se não houver um construtor vazio para o pai, o construtor pai é implicitamente chamado quando a criança é criada.

--

PS.

E se o pai tem um construtor sem parâmetros e um construtor com parâmetros, qual deles é chamado implicitamente do construtor descendente com parâmetros?

 
Igor Makanu #:


para o assunto - na assinatura do método (construtor ? que é chamado como um método ?) adicionar passando um ponteiro por referência


Isto parece uma muleta.

Não é?

 

Olá a todos. Esta pode ser uma pergunta tola, mas ainda não encontrei uma solução.

Eu criei um indicador. Ele tem botões na tabela e quando pressiono, a linha é desenhada e o botão fica ativo.

Como fazer para que a atividade dos botões e a localização permaneçam ativas, quando eu troco o período de tempo?

Ao trocar o TF, a função Deinit funciona, e tem a eliminação de todos os objetos. É uma espécie de pré-requisito, para limpar tudo do gráfico.

Tentei armazenar o status do botão em uma variável, mas como notei nos indicadores, eles são zerados se trocarmos o TF.

Não é assim na EA, o valor das variáveis internas não é zerado lá. Acontece que se o indicador calculou alguns valores e os salvou em variáveis internas, eles serão zerados no comutador TF. Por que e como evitá-lo.

 
makssub #:

Desculpe, estou escrevendo errado novamente. Deixe-me tentar novamente)

Há uma grade de ordens em aberto. Preciso encontrar o preço de abertura (OrderOpenPrice) do pedido mais próximo do preço atual. A fim de continuar a construir a grade, mas minhas ordens são quase caóticas.

Eu entendo como escrever o excesso, mas não consigo expressá-lo corretamente no idioma (sou como um cão, entendo tudo)).

Se você tiver exemplos ou link para exemplos, coloque-os, por favor. MQL4

Primeiro a diferença é igual a 1000 antes do ciclo. No loop, se o preço de abertura menos o preço atual é modulo menor que a diferença, então a diferença é igual ao valor obtido e o bilhete é armazenado em uma variável.
 
Igor Makanu #:

Você deve saber a diferença entre uma chamada do construtor e uma chamada do método/função.


A propósito, qual é a diferença, além do fato de que é chamado implicitamente quando o objeto é criado?

 
void ClosseAll()
{
  for(int i = OrdersTotal()-1; i>=0; i--)
  {
     if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
     {
       if (OrderType() == OP_BUY)
         { 
         if (!OrderClose(OrderTicket(), OrderLots(), Bid, slip))
             Print("Не удалось закрыть ордера на покупку!");
         }
       if (OrderType() == OP_SELL)
         { 
         if (!OrderClose(OrderTicket(), OrderLots(), Ask, slip))
             Print("Не удалось закрыть ордер на продажу!");
         }
     }
  }
}

Bom dia!!!

Por favor, ajude a escrever o código para fechar ordens min e max em uma grade EA quando um certo nível de saque é atingido

Escrevi duas funções para calcular o lucro dos pedidos máximo e mínimo

//+----------------------------------------------------------------------------+
//| Расчет профита максимального ордера в сетке                                |
//+----------------------------------------------------------------------------+
double GetProfitMaxOrder()
{
  int max_ticket = 0;
  double max_ticket_profit = 0 ;
  {
   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) 
    {
    if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) 
     {
      if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
       {
        if(OrderType() == OP_BUY || OrderType() == OP_SELL)
        {
          if(OrderTicket() > max_ticket) max_ticket = ticket;
          {
           max_ticket_profit =  OrderProfit();
          }
        }
       }
     }
    }
  }
  return( max_ticket_profit);
}
//+----------------------------------------------------------------------------+
//| Расчет профита минимального ордера в сетке                                 |
//+----------------------------------------------------------------------------+
double GetProfitMinOrder()
{
  int min_ticket=INT_MAX;
  double min_ticket_profit = 0;
  {
   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) 
    {
     if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
     {
       if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) 
        {
          if (OrderType() == OP_BUY || OrderType() == OP_SELL)
           {
            if(OrderTicket() < min_ticket)
              min_ticket = OrderTicket();
              {
               min_ticket_profit = OrderProfit(); 
              }
           }
        }
      }
    }
  }
  return(min_ticket_profit);
}

Também escrevi uma função que calcula o valor dessas ordens. Parece não haver aqui nenhum problema.

A questão é como fechar somente estas duas ordens, eu encontrei a função ClosseAll().

A questão é como mudar a função OrderTicket() que fecha todos os pedidos

para anexar variáveis max_ticket e min_ticket que determinam bilhetes de apenas ordens min e max na grade

Ou VOCÊ tem a SUA solução para esta questão

Razão: