Erros, bugs, perguntas - página 1520
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
Ainda não há outra forma.
Discutimos a introdução de um novo comando de saída que terminaria imediatamente o programa, mas há aqui questões não resolvidas
É uma pena. Sim, uma saída() como em C++ seria agradável. Hoje em dia, puxar a resposta das funções aninhadas para dentro da chamada é bastante problemático. E não existem bibliotecas universais.
Em alternativa, pode criar uma função separada para apagar todos os objectos do programa e chamá-lo quando a condição para apagar o programa do terminal for cumprida, seguida deExpertRemove(), neste caso deve terminar mais rapidamente... embora não com certeza :)
Como já escrevi anteriormente, e foi sugerido anteriormente num artigo deste site, em caso de erro numa função profundamente aninhada, pode chamar divisão por 0 ou sair fora da matriz. Mas não é agradável.
Sim, e não é apenas no OOP (tanto quanto entendi, é a sério). Simplesmente - se um erro não puder ser corrigido, o programa será terminado.
Pára, mas não imediatamente
Não compreendo, é correcto trabalhar com ExpertRemove() em indicadores ou não?
Penso que existe uma função para os indicadores, ou já não é relevante
ChartIndicatorDelete();
Não compreendo, é correcto trabalhar com ExpertRemove() em indicadores ou não?
No. ExpertRemove() é sobreposto nos indicadores.
"Pára, mas não imediatamente" é dito sobre a ExpertRemove em geral. Esta função não interrompe o funcionamento do programa.
No. ExpertRemove() é sobreposto nos indicadores.
"Pára, mas não imediatamente" é dito sobre a ExpertRemove em geral. Esta função não interrompe o funcionamento do programa.
Por favor, dê um exemplo. Dar o código fonte do indicador para ilustrar o problema
Ao mesmo tempo, a ajuda da função IsStopped diz que a operação do programa é interrompida após 3 segundos se houver um comando para terminar um programa mql.
E se while(true) for substituído por while(!IsStopped()), o indicador termina com sucesso quando removido do gráfico.
Uma razão engraçada para o erro interno do compilador (função utilizada no indicador):
void SaveData ( uint handle_, int wrdata_, int interv_, int dpath_, int tmode_, int tmult_, long ctime_, long& ltime_ )
{
int ierr, wrtint;
// ----
se ( interv_ > 0 ) // modo de trabalho
{
se ( MQLInfoInteger ( MQL_TESTER ) == 0 ) { wrtint = interv_; } // não tem significado
senão{ wrtint = interv_ * tmult_; } // não importa
//
se ( ( ctime_ - ltime_ ) >= ( wrtint * 60 ) // se esta linha for comentada, o erro desaparecerá
{
// algum código para guardar os dados ... não tem significado - testado
//
ltime_ = ctime_; // em geral também não importa
} // if ( ( ctime_ - ltime_ ) >= ( wrtint * 60 )
} // se ( interv_ > 0 )
// ----
regressar;
} // nulo Salvar Dados
( Desculpe, não usei o botão SRC intencionalmente, porque não consigo seleccionar as partes necessárias do texto com ele )
A cura é óbvia, mas deve concordar - é uma falha bastante engraçada. :)))
Uma empresa de corretagem tem uma comissão de 16x2 dólares por um volume de negócios de 1 milhão. Aparentemente, fixaram uma comissão de 16 dólares nas configurações do servidor. E agora quando os testes no seu servidor a comissão 16x2 é deduzida de cada transacção independentemente do seu tamanho de lote, ou seja, o teste adequado só pode ser feito com 10 lotes.
Será a sua falta de habilidade na configuração de servidores ou uma verdadeira limitação do MT5? O que posso aconselhá-los a fazer exactamente nos servidores, para que a comissão seja processada correctamente no testador?