Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1493

 

Além do comentário anterior, se eu especificar:

EventSetTimer(3600); // 3600 segundos = 60 minutos

isso significa que a próxima verificação do valor da variável do terminal ocorrerá em 60 minutos.
Mas no Testador com visualização, 60 minutos serão executados em alguns segundos, e o Indicador verificará os valores após 60 minutos.
Ou o Expert Advisor no Testador e o Indicador em uma janela separada devem ser de alguma forma "sincronizados" no tempo? - Ou seja, se o Expert Advisor enviar um valor para a variável de terminal em alguns segundos, o Indicador solicitará a verificação do valor da variável de terminal também em alguns segundos?
Alguém já se deparou com algo assim e como isso foi resolvido?

 
grezky EventSetTimer(3600); // 3600 segundos = 60 minutos

isso significa que a próxima verificação do valor da variável do terminal ocorrerá em 60 minutos.
Mas no Testador com visualização, 60 minutos serão executados em alguns segundos, e o Indicador verificará os valores após 60 minutos.
Ou o Expert Advisor no Testador e o Indicador em uma janela separada devem ser de alguma forma "sincronizados" no tempo? - Ou seja, se o Expert Advisor enviar um valor para a variável de terminal em alguns segundos, o Indicador solicitará a verificação do valor da variável de terminal também em alguns segundos?
Alguém já se deparou com algo assim e como isso foi resolvido?

O minuto do testador é modelado no testador. O que o impede de verificá-lo? É simples.

 
Artyom Trishkin #:

O minuto do testador é modelado no testador. O que está impedindo você de testar? É fácil.

O indicador será executado em uma janela separada, como ele saberá que é necessário verificar o valor da variável do terminal não após 3600 segundos, mas após alguns segundos, de acordo com o trabalho do testador?
 
grezky #:
O indicador será executado em uma janela separada. Como ele saberá verificar o valor da variável do terminal não após 3600 segundos, mas após alguns segundos, de acordo com o trabalho do testador?

A pergunta não está clara.

 
Artyom Trishkin #:

Não é uma pergunta clara.

Eu a descrevi há uma ou duas páginas.
No testador, no modo de visualização, será executado o simulador de negociação do Expert Advisor (já criado) na ação do preço em M5, negociando manualmente.
Para análise, também precisamos do gráfico H1 - ele será aberto em uma janela separada e, para não poder olhar para o futuro, à direita da barra M5 atual do testador na janela com H1, o indicador desenhará um retângulo preto. O tempo de abertura da última barra (ou seja, zero no testador) da M5 será transmitido ao indicador por meio da variável de terminal (as barras serão ocultadas por um retângulo à direita desse tempo).

Se eu enviar um novo valor do tempo de abertura da barra H1 do testador uma vez por hora, isso levará de fato 1-2-3 segundos no testador, mas o indicador verificará o valor da variável de terminal a cada 3600 segundos.
Acho que provavelmente farei uma verificação no indicador não depois de 3.600 segundos, mas depois de 2-3 segundos.

PS Metatrader está desconectado da Internet, os ticks não chegam ao indicador.

- - - -

Escrevi um indicador para teste, mas recebo um erro (usei init, deinit, start e não encontrei OnCalculate(), etc.), qual é o erro?
.

OnCalculate function declared with wrong type or/and parameters CHECK___TESTER_TermVariable.mq4 33      5
OnCalculate function not found in custom indicator              1       1
1 errors, 1 warnings            2       2


#property indicator_chart_window

datetime   MTF_Time_0            = 0;




void OnInit() {
//   EventSetTimer(3600);   // 3600 секунд = 60 минут
   EventSetTimer(3);        // 3 секунды - периодичность запуска функции OnTimer()
   return;
}



void OnDeinit(const int reason) {
   EventKillTimer();
}




void OnTimer() {
   if(GlobalVariableGet("_AA__MTF_Time_0")>MTF_Time_0 ) {
      MTF_Time_0                 = GlobalVariableGet("_AA__MTF_Time_0");
      GlobalVariableSet("_AA__MTF_Time_0", 0);
   } // if(GlobalVariableGet("_AA___Time_Control_Check")>=Time[0] ) {
} // void OnTimer() {




int OnCalculate(int Time_tmp) {
   if(MTF_Time_0>0) {
      ObjectDelete(       "VLINE_Name_1");
      FUNCTION_DRAW_VLINE("VLINE_Name_1", clrPink, 1, MTF_Time_0, true, TimeToStr(MTF_Time_0, TIME_DATE|TIME_MINUTES), 0);
   }
   Time_tmp                      = MTF_Time_0;

   return(Time_tmp);
} // void OnCalculate() {


 
grezky #:
Eu o descrevi há uma ou duas páginas.
No testador, no modo de visualização, será executado o simulador de negociação Expert Advisor (já criado) na ação de preço em M5, negociando manualmente.
Para a análise, também precisamos do gráfico H1 - ele será aberto em uma janela separada e, para não poder olhar para o futuro, à direita da barra M5 atual do testador na janela com H1, o indicador desenhará um retângulo preto. O tempo de abertura da última barra (ou seja, zero no testador) da M5 será transmitido ao indicador por meio da variável de terminal (as barras serão ocultadas por um retângulo à direita desse tempo).

Se eu enviar um novo valor do tempo de abertura da barra H1 do testador uma vez por hora, isso levará de fato 1-2-3 segundos no testador, mas o indicador verificará o valor da variável de terminal a cada 3600 segundos.
Acho que provavelmente farei uma verificação no indicador não depois de 3600 segundos, mas depois de 2-3 segundos.

PS Metatrader está desconectado da Internet, os ticks não chegam ao indicador.

- - - -

Escrevi um indicador para teste, mas recebo um erro (usei init, deinit, start e não encontrei OnCalculate(), etc.), qual é o erro?
.





Novamente, não entendo por que tudo isso com quadrados pretos e gráficos diferentes é tão complicado, mas vou repetir: o tempo no testador é emulado. Uma hora de tempo do testador não é igual a uma hora de tempo real. É igual a uma hora de tempo emulado no testador.

O que impede o Expert Advisor de cobrir (por algum motivo) o gráfico com uma cortina preta ao abrir uma nova barra de hora não está claro....

 
Artyom Trishkin #:
O que impede o EA de cobrir (por algum motivo) o gráfico com uma cortina preta ao abrir uma nova barra horária não está claro....

O gráfico M5 está aberto no testador, mas preciso do H1 (pelo menos) para analisar a situação do mercado.
(as negociações são abertas no M5 no testador, mas manualmente, a análise no H1 também é feita 'manualmente').
O H1 será aberto em outra janela, não no testador, e o indicador que fecha o lado direito será executado lá.
O indicador obterá o tempo do testador, mas ele verificará pelo tempo real, ou seja, pela hora real, não pela hora do testador.

Verifique onde está o erro no código fornecido na mensagem anterior.
Talvez eu me satisfaça com a verificação após 3 segundos e, então, o problema será resolvido.
Código PS para MT4.

 
grezky #:

O gráfico M5 está aberto no testador, mas eu preciso do H1 (pelo menos) para analisar a situação do mercado.
(as negociações são abertas no M5 no testador, mas manualmente, a análise no H1 também é feita 'manualmente').
O H1 será aberto em outra janela, não no testador, onde será executado um indicador que fecha a parte certa.
O indicador obterá o tempo do testador, mas fará a verificação pelo tempo real, ou seja, pela hora real, e não pela hora do testador.

Verifique onde está o erro no código fornecido na mensagem anterior.
Talvez eu me satisfaça com a verificação após 3 segundos e, então, o problema será resolvido.
Código PS para MT4.

Para perguntas sobre o MT4, escreva para o tópico apropriado. Aqui - perguntas sobre MQL5 e o terminal MetaTrader 5.

 
Artyom Trishkin #:

Novamente, não está claro qual é o propósito de todo esse material com quadrados pretos e gráficos diferentes, mas mais uma vez repito: o tempo no testador é emulado. Uma hora de tempo do testador não é igual a uma hora de tempo real. É igual a uma hora de tempo emulado do testador.

O que impede o Expert Advisor de cobrir (por algum motivo) o gráfico com uma cortina preta ao abrir uma nova barra de hora não está claro....

A emulação de tempo geralmente não é clara para todos.)))))

É sempre melhor ser mais detalhado, isso significa apenas que o testador passará por todos os eventos de uma hora em um segundo ou mais rápido.)))))

 

Boa tarde.

Você pode me dizer como organizar uma nova execução dos parâmetros de otimização recebidos, mas por um período de tempo diferente.

Otimizado para o último semestre em um parâmetro de par de moedas, registrado no Excel. Peguei o período do último ano e quero executar os parâmetros. Como faço para colocá-los de volta no testador ou no otimizador?
Verifique o que será aprovado, o que não será aprovado e anote no Excel. Talvez assim eu também possa executar, por exemplo, os últimos 2 anos.

Razão: