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

 
Alexandr Sokolov:

Tenho um código que não é executado em MQL5 no meu indicador

A questão é que sepreço == STO_LOWHHIGH tudo funciona corretamente, mas se preço == STO_CLOSECLOSE a função atribui somente a variáveis estáticas

... contornando o loop

mas esta mesma função funciona corretamente na MQL4

 
Alexandr Sokolov:

mas a mesma função funciona corretamente na MQL4

Então você precisa especificar quais matrizes Alto[] Fechar[]

Se são de mql4, não estão disponíveis em mql5, se são personalizados... Não posso fazer nenhuma sugestão.

 
Alexandr Sokolov:

Eu quero obter os estocásticos normais maxHigh e minLow dentro do período K por Low/High e Close/Close

Low/High durante a inicialização funciona bem, mas Close/Close não

É mais fácil encontrar fmax() ou fmin() da matriz obtida por CopyBuffer()

 
Alexey Viktorov:

Em seguida, precisamos esclarecer o que são matrizes de Alto[] Fechar[]

Se são de mql4, não estão disponíveis em mql5, se são personalizados... Eu não posso fazer nenhuma suposição.

Aqui está o conteúdo destes amortecedores na MQL5

int count = rates_total - prev_calculated, copied = 0; if(count < (int)kperiod + (int)dperiod + (int)slowing) {count = (int)kperiod + (int)dperiod + (int)slowing;};
   if(mode == m1 && price == STO_LOWHIGH) {copied = CopyOpen(_Symbol,PERIOD_CURRENT,0,count,Open); if(copied != count) return(0);};
   if(price == STO_LOWHIGH) {copied = CopyHigh(_Symbol,PERIOD_CURRENT,0,count,High); if(copied != count) return(0);};
   if(price == STO_LOWHIGH) {copied = CopyLow(_Symbol,PERIOD_CURRENT,0,count,Low); if(copied != count) return(0);};
   copied = CopyClose(_Symbol,PERIOD_CURRENT,0,count,Close); if(copied != count) return(0);
 
Alexey Viktorov:

É mais fácil encontrar fmax() ou fmin() da matriz obtida por CopyBuffer()

Eu preciso de valores não de todo o buffer, mas dentro de um período de K
Caso contrário, como implementá-la, levando em conta que preciso copiar os dados levando em conta o período de desaceleração?

 
Alexandr Sokolov:

Não preciso de valores de todo o buffer, mas dentro do período K
Caso contrário, como posso implementar isto, já que preciso copiar os dados levando em conta o período de desaceleração?

Ontem eu fiz a mesma coisa, só que com matrizes altas e baixas

   for(i = limit; i < rates_total; i++)
    {
     UpperBuf[i] = high[ArrayMaximum(high, i-period, period)];
     LowerBuf[i] = low[ArrayMinimum(low, i-period, period)];
     MidBuf[i] = (UpperBuf[i]+LowerBuf[i])/2;
    }

Sem a série cronológica de viragem. Portanto, como estabelecido em mql5? barra zero à esquerda.

Além disso, é possível copiar o buffer indicador não todo o buffer, mas apenas a quantidade especificada a partir da barra especificada. E eu recomendei erroneamente fmax() e fmin(). Eu quis dizer ArrayMaximum()

 
Alexandr Sokolov:

Eu quero obter os estocásticos normais maxHigh e minLow dentro de um período K por Low/High e Close/Close

Baixa/alta durante a inicialização funciona bem, mas fechar/fechar não

Existem funções padrão para as séries cronológicas

Maximum=iHigh(_Symbol,_Period,iHighest(_Symbol,_Period,MODE_HIGH,num,startbar));
Minimum=iLow(_Symbol,_Period,iLowest(_Symbol,_Period,MODE_LOW,num,startbar));
 
Taras Slobodyanik:

existem funções padrão para as séries de tempos

É aconselhável começar a ler desde o início para obter bons conselhos. De onde surgiu a primeira pergunta e o resto da discussão.

 
Alexey Viktorov:

É aconselhável começar a ler desde o início para obter bons conselhos. De onde surgiu a primeira pergunta e o resto da discussão.

Parece que desde o início - o homem está passando pela série cronológica em busca de min/max.
É possível passar sem ele.

void KValues(int i)
  {
   if (price == STO_LOWHIGH)
      {
      vhigh=iHigh(_Symbol,_Period,iHighest(_Symbol,_Period,MODE_HIGH,kperiod,i));
      vlow=iLow(_Symbol,_Period,iLowest(_Symbol,_Period,MODE_LOW,kperiod,i));
      }
   else
      {
      vhigh=iClose(_Symbol,_Period,iHighest(_Symbol,_Period,MODE_CLOSE,kperiod,i));
      vlow=iClose(_Symbol,_Period,iLowest(_Symbol,_Period,MODE_CLOSE,kperiod,i));
      }
  }
(não verificou).
 
Taras Slobodyanik:

Parece ter olhado para ele desde o início - o homem está passando pelas séries de tempo em busca de min/max.
Você poderia passar sem ele.

(não verificou).

Ele quer valores estocásticos.

Embora... Eu mesmo já estou confuso com o que é necessário. Parece estocástico, mas copia barras...