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

 

Olá a todos. Você pode me informar onde escrever sobre o bug no MT5 após a atualização há duas semanas?


A questão é esta. Quando eu tenho uma posição aberta e passo o mouse sobre SL e TP, a janela de dados (a janela que mostra o fato de SL e TP) não é exibida ou se abre muito lentamente. Eu tentei com vários computadores em diferentes contas. Sinto que isso só acontece quando tenho mais de uma janela em meu terminal. Eu não tinha este problema antes.

Não tenho certeza de como usá-lo e não sei o que fazer com ele.

Arquivos anexados:
 
Artyom Trishkin:

Criar uma nova variável global. Defina o valor do parâmetro de entrada Inp_element_2542795 para ele:

e substituir toda a entrada da string Inp_element_2542795 por esta nova variável g_element_2542795 usando Ctrl + H

A questão continua a ser a mesma. A EA está trabalhando por conta própria. Não estou entendendo onde esta variável global vai ajudar. Tentei mudá-lo, mas os 400 continuam os mesmos. Eu tentei mudar para 200, é constante para 200. Mas quero que a EA seja capaz de decidir que ponto deve ser aplicado.

 
jaffer wilson :

A questão continua a ser a mesma. A EA está trabalhando por conta própria. Não estou entendendo onde esta variável global vai ajudar. Tentei mudá-lo, mas os 400 continuam os mesmos. Eu tentei mudar para 200, é constante para 200. Mas quero que a EA seja capaz de decidir que ponto deve ser aplicado.

Se você quiser que o consultor mude uma variável, então ele deve mudar a variável g_element_2542795. Ele recebe o valor da variável Inp_element_2542795 na inicialização, e então no conselheiro você pode mudá-la como quiser.

 

Por que não funciona assim?

int massiv[OrdersTotal()];
 
igrok333:

Por que não funciona assim?

Stroustrup e Ritchie queriam que fosse assim.
 
igrok333:

Por que não funciona?

Seria surpreendente se isso acontecesse.

 
igrok333:

Por que não funciona assim?

O uso de arrayresize funcionará
 

Por favor, ajudem, apenas começando...
Como fazer uma determinação de tamanho de lote baseada em condições? Eu escrevi isto, mas não funciona.

lote duplo()
{
if((Ask <= L0a3) ||| (Ask <= L2a3) ||| (Ask <= L5a3) || (Ask <= L8a3) ||| (Bid >= L0b1) ||| (Bid >= L2a3) = L2b1) ||
(Bid >= L5b1) ||| (Bid >= L8b1))
lot=(NormalizeDouble(Lots, 2)))

if((Ask <= L0a) ||| (Ask <= L2a) ||| (Ask <= L5a) ||| (Ask <= L8a) ||| (Bid >= L0b) || (Bid >= L2b) ||
(Bid >= L5b) ||| (Bid >= L8b))
lot=(NormalizeDouble((Lots*1,5), 2))

if((Ask <= L0a1) ||| (Ask <= L2a1) ||| (Ask <= L5a1) ||| (Ask <= L8a1) ||| (Bid >||
(Licitação >= L2b3) ||| (Licitação >= L5b3) ||| (Licitação >= L8b3))
lot=(NormalizeDouble((Lots*2.5), 2)));
return lot;
}

 
wolder1:

Por favor, ajudem, apenas começando...
Como fazer uma determinação de tamanho de lote baseada em condições? Escreveu isto, mas algo não funciona.

lote duplo()
{
if((Ask <= L0a3) ||| (Ask <= L2a3) ||| (Ask <= L5a3) || (Ask <= L8a3) ||| (Bid >= L0b1) || (Bid >= L2b1) ||| (Bid >= L2b1)
(Licitação >= L5b1) ||| (Licitação >= L8b1))
lot=(NormalizeDouble(Lots, 2))

if((Ask <= L0a) ||| (Ask <= L2a) ||| (Ask <= L5a) ||| (Ask <= L8a) ||| (Bid >= L0b) || (Bid >= L2b) ||| (Bid >= L2b)
(Licitação >= L5b) ||| (Licitação >= L8b))
lot=(NormalizeDouble((Lots*1,5), 2))

if((Ask <= L0a1) ||| (Ask <= L2a1) ||| (Ask <= L5a1) ||| (Ask <= L8a1) ||| (Bid >= L0b3) ||| (Bid >= L0b3)
(Lance >= L2b3) ||| (Lance >= L5b3) ||| (Lance >= L8b3))
lot=(NormalizeDouble((Lots*2,5), 2))
devolver lote;
}

você tem uma confusão sobre variáveis e funções, se é uma função, tente desta forma:

inserir o código com ALT + S

double _LOTS()
  {
   double lot=0;
   if((Ask <= L0a3) || (Ask <= L2a3) || (Ask <= L5a3) || (Ask <= L8a3) || (Bid >= L0b1) || (Bid > = L2b1) ||
      (Bid >= L5b1) || (Bid >= L8b1))
      {
       lot=(NormalizeDouble(Lots, 2));
       Print(" lot = ", lot); 
       return(lot);
      }
      
    if((Ask <= L0a) || (Ask <= L2a) || (Ask <= L5a) || (Ask <= L8a) || (Bid >= L0b) || (Bid >= L2b) ||
      (Bid >= L5b) || (Bid > = L8b))
      {
       lot=(NormalizeDouble((Lots*1.5), 2));
       Print(" lot = ", lot); 
       return(lot);
      }
     
    

   if((Ask <= L0a1) || (Ask <= L2a1) || (Ask <= L5a1) || (Ask <= L8a1) || (Bid >= L0b3) ||
      (Bid >= L2b3) || (Bid >= L5b3) || (Bid >= L8b3))      
      {
       lot=(NormalizeDouble((Lots*2.5), 2));
       Print(" lot = ", lot); 
       return(lot);
      }
  } 
 
Pergunta simples. A coruja não compila. Há um erro no final do código. + __FUNCSIG__
+ ": "+Market_Err_To_Str(errIndex)
+ "; bilhete de pedido = " + (string)OrderTicket()
+ "; tipo de pedido = " + (string)OrderType()
+ "; Order Stop Loss = " + DoubleToStr(OrderStopLoss(), Digitos())
+ "; novo Stop Loss = " + DoubleToStr(newStopLoss, Digits())
+ "; Bid = " + DoubleToStr(Bid, Digits())
+ "; Ask = " + DoubleToStr(Ask, Digits())
);
}
}
lastSetNonlosTryTime = TimeLocal();
}


Lança um erro de tempo de compilação. Por favor, ajude se você puder. Obrigado!

Razão: