Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1839

 
Alexey Viktorov #:

Além disso, copie CopyHigh e obtenha o máximo desta matriz. Entendo isso através.... mas a outra opção é apenas o looping.

Eu o fiz, mas é uma cópia adicional. O uso de um loop também não é uma opção.

Vou deixá-lo com aCopyHigh.

 
Vitaly Muzichenko #:

Eu fiz, mas é uma cópia extra. Através do laço também não é uma opção.

Deixarei isso através daCopyHigh então.

Há muito tempo venho pensando sobre isso. E cheguei a uma conclusão, que se precisarmos procurar o mínimo/máximo da matriz MqlRates, é melhor copiar os dados necessários para diferentes matrizes duplas.

 
Vitaly Muzichenko #:

Copiando para uma matriz

Como posso obter o máximo em uma matriz?

CopySymb[i].high
 
Vitaly Muzichenko #:

Copiando para uma matriz

Como posso obter o máximo de altura na matriz?

Você pode escrevê-lo diretamente no código:

MqlRates CopySymb[];
double maxHigh;
int iMaxHi, len;  

if((len = CopyRates(mSymbol,PERIOD_CURRENT,0,6,CopySymb))<0) return;

iMaxHi = 0;
maxHigh = CopySymb[0].high;

for (int i = 1; i < len; i++)
  if(CopySymb[i].high > maxHigh) {
    maxHigh = CopySymb[i].high;
    iMaxHi = i;
  }

Print(iMaxHi, ": ", maxHigh);

E não faz mal que o ArrayMaximum não trabalhe com matrizes MqlRates.

 
Mihail Matkovskij #:

Você poderia escrevê-lo diretamente no código:

mas se você pensar sobre isso?

mesmo neste pequeno código há erros brutais

 
Maxim Kuznetsov #:

E se você pensar sobre isso?

mesmo neste pequeno código há erros brutais

Escreveu o código online. Analisei e corrigi todos os erros, acho eu. Cole o código no script e o compilador mostrará os erros, se houver algum.

 
Mihail Matkovskij #:

Escreveu o código online. Analisei e corrigi todos os erros, acho eu. Insira o código no script e o compilador mostrará erros se houver algum.

Não há cura com o compilador, você só precisa saber: pode haver 0 e VAZIO_VALOR no resultado do CopyXXX. Muito raramente, mas bem. EMPTY_VALUE é DBL_MAX, ou seja, o valor máximo. Isso é o que você vai encontrar.

não há verificação da exatidão dos valores recebidos de fora.

 
Maxim Kuznetsov #:

Isto não pode ser corrigido com o compilador, você só precisa saber: CopyXXX resultados podem conter tanto 0 como EMPTY_VALUE. Raramente, mas com freqüência. EMPTY_VALUE é DBL_MAX, ou seja, o valor máximo. Isso é o que você vai encontrar.

Não há verificação da exatidão dos valores recebidos de fora.

Você espera que CopyRates retorne 0,EMPTY_VALUE ouDBL_MAX em uma matriz alta? Você está falando sério? :)

Talvez você possa me mostrar um exemplo onde isso acontece?

 
Mihail Matkovskij #:

Você acha que CopyRates retornará 0,EMPTY_VALUE ouDBL_MAX em um array alto? Você está falando sério? :)

Talvez você possa me mostrar um exemplo onde isso acontece?

E o que o ArrayMaximum fará quando atingir0,EMPTY_VALUE ouDBL_MAX na matriz duplamente preenchida com CopyHigh?

Onde está a lógica em sua declaração?

 
Mihail Matkovskij #:

Você acha que CopyRates retornará 0,EMPTY_VALUE ouDBL_MAX em um array alto? Você está falando sério? :)

Talvez você possa me mostrar um exemplo onde isso acontece?

Eu cometi tais erros. Comece a coletar estatísticas ativamente e você o fará.

Verifique SEMPRE os dados de outras pessoas.

Sobre o fato de que mesmo o Bid, Ask pode estar incorreto, mesmo neste tópico, disse. Não vou cavar o elo, é longo, mas foi e foi curado

Razão: