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
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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
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".
Portanto, mais uma vez, isto é em mql5. E eu preciso dele no mql4.
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 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)
como fazer isso?
para que quando
OnDeinit(REASON_CHARTCHANGE)
Continuar como normalmente sem reiniciar (ignorar completamente esta causa, é um painel informativo com níveis)
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 inferiorBem, 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 TFEscreva 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 desinicialização, iniciar uma inicialização com parâmetros anteriores