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

 
DC2008:

Leia com atenção:

Valor de retorno

A função devolve o índice do elemento encontrado, tendo em conta a seriedade da matriz. Se falhar, a função regressa -1.

Por conseguinte, deveria ser assim:

1. Corrija-me se entendi mal.

Encontraram todos os mínimos no intervalo:

double Low[];
CopyLow(_Symbol,_Period,tss,tspp,Low);

Uma vez que existe uma matriz com mínimos, pesquisamos com a função ArrayMinimum apenas o mínimo da matriz, sem enumerar o intervalo no tempo(tss,tspp)

double min= Low[ArrayMinimum(Low)];  
Alert("min=",min);

2. No guião, o código é colocado na função:

void OnDeinit(const int reason)

todos os parâmetros de tempo são mostrados correctamente, mas a variável min=0,0, embora quando a licitação estava a decorrer, mostrava o mínimo do intervalo especificado. Qual poderá ser o problema?

 
forexman77:

1. Corrija-me se tiver entendido mal.

Encontrámos todos os mínimos no intervalo:

Uma vez que existe uma matriz com mínimos, usamos a função ArrayMinimum para encontrar apenas o mínimo da matriz, sem enumerar o intervalo no tempo(tss,tspp)

2. No guião, coloco o código numa função:

todos os parâmetros de tempo são mostrados correctamente, mas a variável min=0,0, embora quando a licitação estava a decorrer, mostrava o mínimo do intervalo especificado. Qual poderá ser o problema?

No âmbito da variável. Torná-lo global.
Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 
zfs:
No âmbito da variável. Torná-lo global.
Movida a variável "double min;" para global ainda =0.0.
 
forexman77:
Variável movida "double min;" para global ainda =0.0

Roteiro:

void OnStart()
  {
   double Low[];
   CopyLow(_Symbol,_Period,0,10,Low);
   double min=Low[ArrayMinimum(Low)];
   Alert("min=",min);
  }
Não há OnInit e OnDeinit nos guiões.
 

Tem um erro na sua documentação https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples

int ChartFirstVisibleBar(constlong chart_ID=0)
{
//--- preparar uma variável para obter o valor do bem
resultado longo=-1;
//--- redefinir o valor do erro
ResetLastError();
//--- obter o valor do bem
se(!ChartGetInteger(chart_ID,CHART_WINDOW_YD ISTANCE,0,result)) deve ser CHART_FIRST_VISIBLE_BAR
{
//--- imprimir a mensagem de erro para a revista "Experts".
Print(__FUNCTION__+", Código de Erro = ",GetLastError()));
}
//--- devolver o valor da propriedade do gráfico
retorno((int)resultado);
}

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком - Документация по MQL5
 
DC2008:

Roteiro:

Não há OnInit e OnDeinit nos guiões.

Muito obrigado!!!!

Funcionou para mim!!!

 

Por favor, diga-me que programas usar para proteger a EA e para limitar o tempo de trabalho, por exemplo, preciso de proteger a EA da descompilação, para que funcione apenas durante 5 dias.

Preciso de um programa onde eu possa limitar permanentemente o tempo de execução da EA para dar a EA a outras pessoas para testes.

 

Ao testar uma EA, encontrei a seguinte dificuldade.

O Conselheiro Especialista não negoceia (tem de o fazer) se:

 if(Stop <=Start) { return;}

Ao testar, defino os parâmetros Stop de 1 a 33, Start de 1 a 33.

Naturalmente, o testador produz cerca de 2/3 de resultados zero, porque Stop > Start no testador ocorre por vezes durante a ultrapassagem.

Estes testes nulos demoram muito tempo.

Pergunta: Como desactivar os testes de testes nulos no código do Expert Advisor?

Logicamente, o tempo de teste deve ser reduzido após a proibição?

 
forexman77:

Ao testar uma EA, encontrei a seguinte dificuldade.

O Conselheiro Especialista não negoceia (tem de o fazer) se:

Ao testar, defino os parâmetros Stop de 1 a 33, Start de 1 a 33.

Claro, o testador produz cerca de 2/3 de resultados nulos porque Stop > Start no testador ocorre por vezes durante a ultrapassagem.

Estes testes nulos demoram muito tempo.

A questão é como desactivar os testes nulos em código EA.

https://www.mql5.com/ru/docs/common/expertremove

Isto funciona no testador. // Pelo menos funcionou no edifício antes do último. Já passou algum tempo desde que o verifiquei.

Документация по MQL5: Общие функции / ExpertRemove
Документация по MQL5: Общие функции / ExpertRemove
  • www.mql5.com
Общие функции / ExpertRemove - Документация по MQL5
 
MetaDriver:

https://www.mql5.com/ru/docs/common/expertremove

funciona no testador. // pelo menos funcionou no edifício antes da última vez. já passou algum tempo desde que o verifiquei.

Preciso de um passe de teste. A EA não negoceia se:

if(Stop <=Start) { return;}

Quero fazer isto para reduzir o tempo de teste.

Talvez haja uma função no testador especificamente para os parâmetros de entrada para definir os mesmos parâmetros que na EA?

Se conseguirmosStop <=Start, saltamos este passe.

Razão: