Perguntas de um "boneco" - página 198

 
lazarev-d-m:

desta condição resulta que irá actuar em três situações:

1)Quando o provador está a trabalhar

2)Quando o provador NÃO está a funcionar

3)Quando o testador visual funciona

por isso a função funcionará sempre, o mais provável é que tenha de remover a segunda condição e ligar a primeira e a terceira com &&

Um pouco assim:

2 ou (1 e 2). É disso que eu preciso. Não para estar em modo de teste, mas em modo de teste visual.

Lamento, mas acho que confundi os terminais e testei o código errado. A minha condição parece funcionar correctamente.

 
lazarev-d-m:

por isso a função funcionará sempre, o mais provável é que tenha de remover a segunda condição e ligar a primeira e a terceira com &&

Quer dizer que esta condição é suficiente:

if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_VISUAL_MODE)==1)

 
tor4en:

Quer dizer que uma tal condição é suficiente:

if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_VISUAL_MODE)==1)

Sim, isso também funciona. Obrigado.
 
Como pode um parâmetro a ser optimizado ser influenciado se o seu alcance depende de outro parâmetro optimizado? Chamar o especialistaremove no oninit se o parâmetro não for adequado? Qual é a melhor forma de acelerar a optimização?
 
aharata:
Como posso influenciar o parâmetro a ser optimizado, se o seu alcance depende de outro parâmetro optimizado? Chamar o especialistaremove no oninit se o parâmetro não for adequado? Qual é a melhor forma de acelerar a optimização?

Veja as funções ParameterSetRange e ParameterGetRange. Permitem reescrever o parâmetro a enumerar com base nas condições não-numéricas previamente estabelecidas.

Por exemplo, como este:

//--- input parameters
sinput int   Param1=4;            // хитрый параметр
sinput int   Param2=30;           // хитрый параметр
sinput bool  Param3=false;        // хитрый параметр
                                  
sinput long  Counter=1;           // а вот этот параметр мы и будем оптимизировать (синтетический счетчик)


//--- на основе Param1, Param2 и Param3 высчитаем хитрое количество проходов счетчика Counter
ParameterSetRange("Counter",true,0,0,1,1+long(Param3 ? (Param1*Param2):(Param1*2));

Note a utilização de sinput (entrada estática) em vez de entrada, o que dá uma alteração bloqueada "de" e "para" este parâmetro na GUI. E de forma semelhante, o parâmetro Contador que é bloqueado para alterações utilizando a função ParameterSetRange é desbloqueado com a definição de limites calculados.

Pode usar este mecanismo para fazer condições de entrada muito complexas que podem ser usadas para fazer girar balcões de facturação sintéticos. Não se esqueça apenas que a função de definição de parâmetros funciona apenas no OnTesterInit.

 
Muito obrigado, Renat. Era mesmo o que eu precisava!)
 
Pergunta sobre a criação de um ciclo de arranque do terminal para testes utilizando a linha de comando.

Situação actual:
1. Estou a utilizar a linha de comando para iniciar o terminal a fim de optimizar o Expert Advisor.
2. O terminal inicia, optimiza e guarda o resultado em ficheiro xml.
3. Terminal de fecho manual
4. Edito o ficheiro ini (alterar, por exemplo, o período de teste)

5. Passando ao ponto 1.


Pergunta: alguém já foi capaz de automatizar este processo, incluindo a selecção automática de parâmetros para o ficheiro ini a partir de uma determinada lista, e o encerramento do terminal? Por favor, partilhe as suas ideias sobre como isto poderia ser feito. A melhor opção seria oferecer uma solução pronta para automatizar o processo acima referido. Certamente alguém já pensou nisso antes de mim.

 
Há um comando no ficheiro de configuração para fechar automaticamente o terminal no final de um teste. Ver no ficheiro de ajuda.
 
papaklass:

Renat, bem faça um ARMAZENAMENTO para os quatro, POR FAVOR. Descarreguei o Expert Advisor para o meu portátil, mas esqueci-me de todos os inlúdios. Agora sento-me aqui como um simples :) programador, escrevendo funções em vez de depurar o Expert Advisor.

A minha pen drive é a nossa fiel ARMAZENAMENTO :)

SZY, bem, e correio de vez em quando

 
sergeev:

A pen drive é o nosso fiel ARMAZENAMENTO :)

ZS, e por vezes o correio.

Flash drive - eu discutiria, eles partem-se muitas vezes.

Tenho um disco rígido externo que sincroniza automaticamente uma vez por dia (cerca de 300 gigas de ficheiros de trabalho) Se for a algum lado, atiro-o para a minha mala e fico feliz.

Dizem que as unidades ssd são virtualmente indestrutíveis. Mas muito caro.

Razão: