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

 
MakarFX #:
PM

verifique sua carteira)

 
Alexey Viktorov #:

Encontrei isto em um fio

Eu o copiei, olhei para ele, não entendi nada, comentei e me esqueci dele.

Agora me lembrei, encontrei-o em meus códigos de teste, mas não consigo encontrá-lo no fórum. Não entendo como funcionam as macros, talvez alguém possa explicar como funciona ou encontrar o problema do qual eu copiei...

Em geral, eu preciso de alguma forma definir a macro-substituição.........

Tudo isso funciona na fase de compilação, mas não durante o carregamento do programa.

 

Bom dia a todos !!!!

Você poderia me dizer qual é o número do penúltimo bilhete?

Há uma função para determinar a última ordem:

//+----------------------------------------------------------------------------+
//| Расчет тикета максимального ордера в сетке                                 |
//+----------------------------------------------------------------------------+
int GetTicketMaxOrder()
  {
   max_ticket = 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 = OrderTicket();
                 }
              }
           }
        }
     }
   return(max_ticket);
  }

Uma variante para aplicar esta função e supor -1 do max_ticket não funciona porque a EA comercializa vários instrumentos e pode acontecer que entre a última e penúltima ordem uma ordem de outro instrumento seja aberta.

Preciso que o pedido seja selecionado entre todos os pedidos menos o máximo dos pedidos restantes ou o próximo bilhete mais alto após o máximo ou pode ser sua decisão. Obrigado.

 
Vitaly Muzichenko #:

Tudo isso funciona em tempo de compilação, mas não quando o programa é carregado.

O carregamento de um programa não depende de como ele é compilado?

 
EVGENII SHELIPOV #:

Bom dia a todos !!!!

Esta função não pode funcionar corretamente

int GetTicketMaxOrder()
  {
   max_ticket = 0;
     {
      for(int cnt = OrdersTotal() - 1; cnt >= 0; cnt--)
        {
         if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
           {
 
MakarFX #:

Esta função não pode funcionar corretamente.

Sim Makar você está certo como sempre pode ser corrigido, mas estranhamente esta função funciona como um relógio

 
MakarFX #:

Exatamente.

É possível fazer isso através?

A única saída é escrever seu próprio painel de parâmetros e usá-lo a partir do OnInit() em vez de usar o mecanismo de parâmetros de entrada padrão.
 
Sergey Gridnev #:
A única saída é escrever seu próprio painel de parâmetros e usá-lo a partir do OnInit() em vez de usar o mecanismo de parâmetros de entrada padrão.

Idéia interessante! Obrigado.

Não, não é interessante(

Toda vez que você muda os prazos novamente, não é legal entrar nas configurações(

 
EVGENII SHELIPOV #:

Sim Makar você está certo como sempre é fixável, mas estranhamente esta função funciona como um relógio.

Funcionou como um relógio porque você estava procurando o último pedido de max_ticket

não foi possível encontrar outro bilhete.

 
EVGENII SHELIPOV #:

Bom dia a todos !!!!

Você pode me dizer o número do penúltimo bilhete, por favor?

É possível memorizar um bilhete antes de abrir um novo pedido.