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
Obrigado por sua ajuda nos testes! MTTester.mqh atualizado publicado.
Muito obrigado pela biblioteca
Esse Expert Advisor pressiona o botão Start a cada três segundos, se não for Stop. Consegui pressioná-lo - verdadeiro, caso contrário - falso.
Situação padrão.
Pressionei Start - o cálculo foi iniciado.
Essa ação leva cerca de 125 ms.
Isso não é incomum.
Pressionar Iniciar - o cálculo instantâneo é iniciado ou o Testador informa que não pode executar o cálculo (por exemplo, FromDate >= ToDate).
Essa ação leva cerca de um segundo. A biblioteca alertará, mas retornará true - o botão foi pressionado.
Situação rara.
O botão Iniciar não foi pressionado. Isso pode ser resolvido somente com a reinicialização do Terminal.
Não tenho registros dessa situação. Demorará menos de 10 segundos para identificar essa situação. Haverá um alerta como este.
Retorno falso - o botão não foi pressionado.
É uma situação rara.
O botão Iniciar não está pressionado. Isso só pode ser resolvido com a reinicialização do Terminal.
Uma máquina WinServer remota estava continuamente fazendo centenas de passagens únicas sem nenhuma falha.
Assim que me conectei (RDP) a essa máquina, o botão Iniciar parou de clicar. A solução, como sempre, é reiniciar o Terminal.
Parece que esse comportamento tem algo a ver com logins semelhantes na máquina. Você pode fazer login via RDP dezenas de vezes e tudo funciona bem. Mas algum login se torna fatal para o testador.
Aqueles que encontrarem o bug de inicialização devem prestar atenção à relação entre o login na máquina e o botão Iniciar.
ZY Coincidência ou não, o WinServer se ofereceu para verificar suas atualizações durante esse logon na máquina.
Boa biblioteca.
É possível especificar qual arquivo *.set com configurações de parâmetros deve ser passado programaticamente para o teste?
Por padrão, apenas as mesmas configurações são usadas, o que não é muito conveniente.
É possível especificar qual arquivo *.set com configurações de parâmetros deve ser passado programaticamente para o teste?
Exemplo.
Obrigado.
É melhor passar as configurações em uma única linha com as linhas separadas pelo caractere \n.
ou em uma matriz de linhas, como no exemplo?
E é possível modificar em
método estático Run da classe MTTester
static bool Run( const string ExpertName = NULL,
const string Symb = NULL,
const ENUM_TIMEFRAMES period = PERIOD_CURRENT,
const datetime iBeginTime = 0,
const datetime iEndTime = 0 )
adicionar uma string de parâmetro (ou uma matriz de strings) que especifique as configurações do *.set EA?
Obrigado.
É melhor passar as configurações em uma única linha com as linhas separadas por um caractere \n?
ou em uma matriz de linhas como no exemplo?
GetSettings é CTRL+C no Tester.
SetSettings é CTRL+V no Tester.
Veja com quais dados o CTRL+C/V funciona.
E se é possível modificar em
método estático Run da classe MTTester
Eu não uso esse método. Ele permanece como histórico.
O exemplo mostra todos os métodos do MTTESTER que são necessários.
É possível especificar qual arquivo *.set com configurações de parâmetros deve ser passado programaticamente para o teste?
O Validate funciona com arquivos ini completos do testador e com uma versão reduzida - arquivos de configuração para o testador.
Se você precisar executar muitos arquivos ini/set, o Validate fará isso imediatamente. Use.
O Validate funciona com arquivos ini completos do Tester e com uma versão simplificada - set-files for Tester.
Se você precisar executar muitos arquivos ini/definição, o Validate fará isso imediatamente. Use.
Obrigado.
Encontrei uma solução neste comentário em que o arquivo de conjunto é carregado no formato necessário como uma matriz de strings.
https://www.mql5.com/ru/forum/318305/page34#comment_51842356
Também substituí
typedef bool (*INITDEINIT)( void );
ponteiro de chamadas de retorno na inicialização e desinicialização de cada execução
para a interface
interface InitDeInit {
bool RunInit();
bool RunDeInit();
};
que é implementada em um herdeiro
de uma classe semelhante à estrutura SETTINGS
e, portanto, no método RunInit().
Carrego o arquivo de configuração da ferramenta necessária.
typedef bool (*INITDEINIT)( void ); - esse ponteiro não permite que você saiba qual ferramenta está inicializando/desinicializando, portanto, é melhor usar um ponteiro para a interface, pois os ponteiros para métodos ainda não são suportados pelo MQL.
Com essa abordagem, não há necessidade de modificar o método MTTester::Run.