Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 277

 
mila.com:
Hola.
Por favor, ayúdeme a comparar el precio de la MA en la primera barra con los precios de la MA en las cuatro barras anteriores. Si el precio ha subido y la diferencia es mayor que N llena el buffer. Lo estoy intentando de esta manera

¿Qué precio subió, el de la MA? ¿Ha subido en relación con cada barra sucesiva (valor en la barra) o en relación con cualquiera de las cuatro?

 
Aleksey Vyazmikin:

¿Qué precio subió, el de la MA? ¿Subió con respecto a cada barra posterior (valor en la barra) o con respecto a cualquiera de las cuatro?

Sí, a cualquier bar.

Condición: Si el valor de la MA en la primera barra ha aumentado en N con respecto al valor de la MA en cualquiera de las cuatro barras anteriores, entonces el buffer.

Necesito saber que el valor de la MA se ha incrementado en "N" pips, y no importa durante qué periodo de tiempo, pero no se me ocurre otra cosa que una comparación en un número limitado de barras.

 
mila.com:

Sí, a cualquiera.

Condición: Si el valor de la línea de la MA en la primera barra ha aumentado en N con respecto al valor de la MA en cualquiera de las cuatro barras anteriores, entonces el buffer.

Necesito saber que el valor de la MA ha subido en "N "pips, y sin importar el tiempo, pero aparte de comparar en un número limitado de barras no se me ocurre nada.


Entonces, ¿por qué no restas un valor de la MA del otro y miras el delta, lo comparas con el mínimo, por qué estos ciclos?

 
Aleksey Vyazmikin:

Entonces, ¿por qué no restas un valor de la MA del otro y miras el delta, lo comparas con el mínimo, por qué estos ciclos?

El precio puede cambiar lentamente a lo largo de varias barras, un pip a la vez (teóricamente) el quinto será el cambio que está buscando.

 
mila.com:

El precio puede cambiar lentamente a lo largo de varias barras


Así que tome el valor del indicador hace 4 barras y el valor actual y compare - si el período de promedio no es súper superficial, entonces el aumento es suave...

 

¿O tiene indicadores con diferentes ajustes?

 
Aleksey Vyazmikin:

Así que tome el valor del indicador hace 4 barras y el valor actual y compare - si el período de promedio no es súper superficial, el aumento es suave...

La diferencia que buscas puede estar en la segunda barra, pero sugieres comparar la primera y la cuarta.

 
mila.com:

La diferencia que buscas puede estar en la segunda barra, pero sugieres comparar la primera y la cuarta.


¿Cuál es el período de promediación de la MA - me preguntaba - necesita un descanso?

 
mila.com:

Un indicador MA. ¿Puedes ayudar con el bucle?


Si he entendido bien lo que quieres, aquí está el guión - tratar con él.

#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int period_iMA=16;
input double N_=0.005;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double DeltaMA=0.0;
   int Nbar=0;
   for(int i=1;i<5;i++)
     {
      DeltaMA=iMAf(1)-iMAf(i);
      if(DeltaMA<0)DeltaMA=DeltaMA*(-1);
      if(N_-DeltaMA<0) {Nbar=i; break;}
     }
   Print("Бар привышения - ",Nbar);

  }
//+------------------------------------------------------------------+
double iMAf(int index)
  {
   return NormalizeDouble(iMA(Symbol(),0,period_iMA,0,0,0,index),Digits);
  }
//+------------------------------------------------------------------+

Hago delta en valor positivo, si necesitas determinar con + o -, entonces elimina la líneaif(DeltaMA<0)DeltaMA=DeltaMA*(-1); y ten en cuenta por separado una constante para la comparación (con - y +)

 
Aleksey Vyazmikin: entonces, este es el guión - lidiar con él.
Gracias

Razón de la queja: