Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 1127

 
Sergey Gritsay:

E agora leia a documentação MT5 normal, agora algumas das funções antigas funcionam exatamente como escritas nela, já que a documentação mt4 está desatualizada e há muitas coisas ainda não corrigidas.

GetLastError

Retorna o conteúdo da variável_LastError system.

intGetLastError();

Valor retornado

Retorna o valor do último erro que ocorreu durante a execução do programa mql5.

Nota

Depois que a função é chamada, o conteúdo da variável _LastError não é apagado. A funçãoResetLastError() deve ser chamada para zerar esta variável.

Veja também

Códigos de retorno de servidores comerciais

Portanto, mais uma vez, isto é em mql5. E eu preciso dele no mql4.
 
Vitaly Muzichenko:

Bem, eu estou desde 1997)

Veja, há um carrapato e com ele um sinal, e se você receber um erro, ele precisa ser processado. Processado e consultado novamente, mas antes de consultar você pode zerar a variável com erro, então na próxima consulta se houver um erro, ela irá para variável novamente, mas se não houver erro, ela será "0".

Você não precisa zerar a variável, mas se houver um erro, ela retornará um novo valor. Em qualquer caso, você não deve estar interessado no erro que teve da última vez no último tick, você deve processar apenas o que você tem "agora".

Desde 1997, é a hora! ) Provavelmente, a única pessoa que me entendeu. Obrigado.
 
Evgeniy Oshurkevich:
Portanto, mais uma vez, isto é em mql5. E eu preciso dele no mql4.
No que diz respeito a esta função, ela não faz diferença. Mas se for de princípio, então leia F1.
 

Estou duplicando minha pergunta neste tópico, pois o tópico mql5 não pôde ajudar - ninguém sabe a resposta.

Eu tenho esta função e ela funciona no meu Expert Advisor/Script

double maxLot(double Percent, string symbol, ENUM_ORDER_TYPE action=ORDER_TYPE_BUY)
  {
   double One_Lot=0.0;
   double price=0.0;
   double volume=0.0;
   double MinLot=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
   double Free=AccountInfoDouble(ACCOUNT_FREEMARGIN);
   double Step=SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP);
   if(action==ORDER_TYPE_BUY)price=SymbolInfoDouble(symbol,SYMBOL_ASK);
   if(action==ORDER_TYPE_SELL)price=SymbolInfoDouble(symbol,SYMBOL_BID);
   if(!OrderCalcMargin(action,symbol,1.0,price,One_Lot))return(MinLot);
   if(One_Lot!=0 && Step!=0)volume = MathFloor(Free*Percent/100.0/One_Lot/Step)*Step;
   if(volume!=0)return(volume);
   return(MinLot);
  }

Pergunta:como obter o máximo lote possível em um indicador,OrderCalcMargin não funciona em um indicador por alguma razão? Eu tentei usarOrderCalcMargin, mas não funciona no mt4.

Obrigado!

 

como fazer isso?

para que quando

OnDeinit(REASON_CHARTCHANGE)

Continuar como normalmente sem reiniciar (ignorar completamente esta causa, é um painel informativo com níveis)

 
trader781:

como fazer isso?

para que quando

OnDeinit(REASON_CHARTCHANGE)

Continuar como normalmente sem reiniciar (ignorar completamente esta causa, é um painel informativo com níveis)

Você não pode.
 
Vitalie Postolache:
De jeito nenhum.

Bem, há maneiras de contornar isso.

Sou preguiçoso demais para enfiar níveis no código para cada uma das 40 ferramentas existentes.

É mais fácil torná-lo automático e clicar no TF com os símbolos como você quiser.

E, ao mesmo tempo, estou procurando uma maneira de especificar os valores da TF superior sobre a inferior
 
trader781:

Bem, há maneiras de contornar isso.

Sou preguiçoso demais para enfiar níveis no código para cada uma das 40 ferramentas existentes.

É mais fácil torná-lo automático e clicar no TF com os símbolos como você quiser.

E, ao mesmo tempo, estou procurando uma maneira de especificar valores muving para as principais TF
As configurações devem ser escritas em um arquivo e o inite deve ser lido. Não há como contornar o deinit, ele não pede permissão.
 
Vitalie Postolache:
Escreva as configurações em um arquivo e leia-as no init. Não há como contornar o deinit, ele não pede permissão.
Por que não contornar o deinit escrevendo para um arquivo, se possível? por exemplo, em caso de deinicialização, você pode iniciar um início com os parâmetros anteriores
 
trader781:
Por que não contornar o deinit escrevendo para um arquivo, se possível? por exemplo, em caso de desinicialização, iniciar uma inicialização com parâmetros anteriores
Não foi isso que eu escrevi acima?