Comunidade de Especialistas - página 6

 
Que diferença você quer encontrar? diferença de matrizes? Então não é possível adicionar ou subtrair matrizes. encontrar a diferença elemento por elemento.
 
Que diferença você quer encontrar? diferença de matriz? Então não podemos adicionar ou subtrair matrizes. encontrar a diferença elemento por elemento.


Só não está claro para nós chukchi porque você diz que estamos tentando subtrair arrays, fazemos como mostrado no dicionário MKL4:


double macurrent=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,0);
   double macurrentslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,0);
   double maprev=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,1);
   double maprevslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,1);
   //----
   if(maprev<maprevslow && macurrent>=macurrentslow)
     Alert("crossing up");



Por favor, avise!

 
Obrigado, Slava, pela dica.

Aqui está o código com o erro

ArrayCopySeries(ma_C, MODE_CLOSE, "EURUSD", PERIOD_H1);
double ma_6C=iMAOnArray( ma_C, 0, 3*MA_period,0,MODE_SMA,1 );



E aqui está um trabalhador

ArrayCopySeries(ma_C, MODE_CLOSE, "EURUSD", PERIOD_H1);

 ma_6C=ma_C[1];

for(i=2; i<(3*MA_period); i++)
   {
      ma_6O+=ma_O[i];
      ma_6C+=ma_C[i];
   }

ma_6C/=(3*MA_period);
 
O tópico foi movido para http://forum.viac.ru/viewtopic.php?t=2973
 
O tópico foi movido para http://forum.viac.ru/viewtopic.php?t=2973
 
O tópico foi movido para http://forum.viac.ru/viewtopic.php?t=2973
 
Uma pergunta para quem está familiarizado com as profundezas do MKL4.

Existe algum comando padrão que permita ao especialista
para ver a interseção das médias. Por exemplo, uma média de período 5 cruza uma média
do período 20. O Conselheiro Especialista pode ver como pessoa o momento da travessia,
existe uma função ou comando padrão para este tipo de coisa?

A figura abaixo mostra a interseção das médias vermelha e verde como
É um exemplo do que o Expert Advisor deve ver e trabalhar neste sinal.
 
M1 - primeiro deslizamento,
O M2 é o segundo deslizamento.

Precisamos comparar os sinais das diferenças (M1 - M2)
sobre as barras atuais e anteriores.
Se forem diferentes, isso significa que há um cruzamento.
O caso especial é quando uma das diferenças = 0.

Você pode fazer isso assim
if ((M1[0] - M2[0]) != 0)
{ 
   double R = 0;
   for (int i = 1; i < Bars && R == 0; i++)  R = (M1[i] - M2[i]);
   if ((M1[0] - M2[0]) * R < 0)
   {
      // Знаки разные, есть пересечение ..........
   }
}



(eu mesmo não verifiquei)

 
...Existe algum comando padrão que permita ao Expert Advisor<br / translate="no"> ver o cruzamento de médias.

não há um padrão.
O consultor especializado pode ver o momento do cruzamento como um ser humano,
existe uma função ou comando padrão para tais coisas?

Facilmente
...como um exemplo do que o Assessor Especialista deve ver e trabalhar neste sinal.

veja o dicionário iMAOnArray, há até um exemplo com interseção
só para o caso de
   double macurrent=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,0);
   double macurrentslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,0);
   double maprev=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,1);
   double maprevslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,1);
   //----
   if(maprev<maprevslow && macurrent>=macurrentslow)
     Alert("crossing up");



2Sysadmin, o botão "enter" está escondido novamente. Além disso, até onde eu entendi [pré] foi substituído por [código]?

 
Por que você está realizando esta operação e o que ela faz?

   for (int i = 1; i < Bars && R == 0; i++)  R = (M1[i] - M2[i]);
 



Razão: