Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 674
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
Não consigo obter algo para imprimir() no diário de bordo do testador. Como é que se faz?
Aqui está o código do OnInit() do Expert Advisor:
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SymbolSelect("EURJPY",true);
Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
SymbolSelect("USDJPY",true);
//---
return(INIT_SUCCEEDED);
}
Depois estabeleço um ponto de parada (passo 1) e faço o teste sobre o histórico (passo 2):
e no testador recebo o resultado:
Vladimir Karputov:
Em seguida, estabeleço um ponto de parada (passo 1) e faço um teste de história (passo 2):
Existem restrições ao funcionamento de algumas funções no testador de estratégias do terminal do cliente.
Funções Print() e PrintFormat()
Para aumentar o desempenho na optimização dos parâmetros EA, as funçõesPrint() ePrintFormat() não são executadas. A excepção é a utilização destas funções dentro do manipuladorOnInit(). Isto permite-nos facilitar a pesquisa de causas de erro quando ocorrem erros.
porque é que aimpressão() funciona dentro do manipuladorOnInit() não funciona como habitualmente ?
E em geral, sobre outras funções definidas pelo utilizador no init() no modo de optimização ?Estranhamente, o meu botão azul, para o qual aponta com "2", não está activo. Poderá ser porque estou no MT4 ?
Sim, é por isso que posso testar livremente qualquer EA na HISTÓRIA, ou seja, escolher um período de tempo, digamos de 2016.06.20 a 2016.11.11 e discretamente, passo a passo, depurar e observar mudanças nas variáveis, enquanto não se pode fazer isso.
Então vale a pena continuar sentado num terminal antigo cujo apoio terminou? Ou talvez devesse usar o moderno MetaTrader 5? De facto, MetaTrader 5 já tem hedging:A plataforma de negociação MetaTrader 5 tem hedging.
Sim, é por isso que posso testar livremente qualquer EA na HISTÓRIA, ou seja, escolher um período de tempo, digamos de 2016.06.20 a 2016.11.11 e discretamente, passo a passo, depurar e observar mudanças nas variáveis, enquanto não se pode fazer isso.
Então vale a pena continuar sentado num terminal antigo cujo apoio terminou? Ou talvez devesse usar o moderno MetaTrader 5? Afinal, o MetaTrader 5 já tem cobertura:A plataforma de negociação MetaTrader 5 tem cobertura.
Porque posso depurar no MT4, e calmamente, passo a passo, depurar e ver as variáveis mudarem? O que é que estou a fazer mal?
Pergunta substantiva:
porque é que a funçãoPrint() dentro do manipuladorOnInit() não funciona como habitualmente? E em geral, o que dizer de outras funções personalizadas no init() no modo de optimização ?
Caro!!!!
Pergunta substantiva:
porque é que a funçãoPrint() dentro do manipuladorOnInit() não funciona como habitualmente? E em geral, o que dizer de outras funções definidas pelo utilizador no init() no modo de optimização ?
Tudo é explicado acima. Funcionou e funciona. Mostrei-vos um exemplo.
Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos
Perguntas de principiantes
Vladimir Karputov, 2016.11.23 12:07
Aqui está o código de OnInit() da EA:
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SymbolSelect("EURJPY",true);
Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
SymbolSelect("USDJPY",true);
//---
return(INIT_SUCCEEDED);
}
Coloco ainda um ponto de ruptura (passo 1) e começo a testar a história (passo 2):
E no testador recebo o resultado:
O acima exposto já foi explicado. Funcionou e funciona. E eu dei-vos um exemplo.
Permitam-me que me repita:
1. Porquê a funçãoPrint() dentro doOnInit() não funciona como habitualmente?
2. Como é que os outros utilizadores funcionam no init() em modo de optimização ?
Vladimir, no seu exemplo com o ponto de ruptura e o início dos testes a partir do MetaEditor, e não a partir do testador no terminal não é padrão.
Mais uma vez:
1. Porque é que a funçãoPrint() dentro do manipuladorOnInit() não funciona como habitualmente?
2. Como é que os outros utilizadores funcionam no init() em modo de optimização ?
Tenho a sensação de que nunca ligou o terminal.
Aqui está o código do OnInit() do Expert Advisor:
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SymbolSelect("EURJPY",true);
Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
SymbolSelect("USDJPY",true);
//---
return(INIT_SUCCEEDED);
}
Passo a passo. Passo Um - iniciar o testador a partir do terminal (uma única passagem), testando o histórico, com visualização:
No testador de estratégias, obtemos os seguintes resultados: