[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 498

 
rigc:
(no es un dibujo en absoluto)))


No lo sé, lo hace. El indicador es muy sencillo:

int start()
  {
   
//----
  double F1=0, F3=0, F13;    // номера фракталов
  int    B1, B3, SR=3;               // номера баров
  
  while(F3==0)                       //поиск фракталов
  {
    F13=iFractals(NULL,0,MODE_UPPER,SR);
    if (F13!=0) 
    {
      if      (F1==0){B1=SR; F1=F13;}
      else if (F3==0){B3=SR; F3=F13;}
    }
    SR++; 
  }
    ObjectSet("Rezist", OBJPROP_TIME1 ,iTime(NULL,0,B3));
    ObjectSet("Rezist", OBJPROP_TIME2 ,iTime(NULL,0,B1));
    ObjectSet("Rezist", OBJPROP_PRICE1,iHigh(NULL,0,B3));
    ObjectSet("Rezist", OBJPROP_PRICE2,iHigh(NULL,0,B1));
    ObjectSet("Rezist", OBJPROP_RAY   , True);

  
//----
   return(0);
  }

SR=3, eso es lo que he corregido. Era SR=2 número de barra a partir del cual empezar a buscar un fractal

 
Figar0:


No lo sé, lo he probado. El indicador es muy sencillo:

SR=3, eso es lo que he corregido. Era SR=2 número de barra a partir del cual empezar a buscar un fractal

Sí, lo tengo)))

Gracias

Te debo una.

 
sss2019:
¿Puede decirme cómo ejecutar una condición? Tenemos una condición para abrir una orden de compra al precio actual tan pronto como el precio alcance 1,2550. Así, cuando el precio es mayor o igual a 1,2550, se abre la orden y cuando se abre la orden, la variable estática bloquea la apertura de nuevas órdenes, hasta que la orden llega a 0. Así, en cuanto se cierra la orden y no hay más órdenes con esta magia, se elimina la prohibición de apertura y se abre una nueva orden, pero el precio ya se ha alejado de este nivel. Necesitamos que el EA abra órdenes de mercado cuando el precio alcance este nivel pero no las pendientes.
Tiene un cheque por más o igual a 1,2550. En otras palabras, cuando el precio es más alto(se ha ido hace tiempo), el criterio es invariablemente cierto y, por lo tanto, se abrirán las posiciones.
Hay que tener en cuenta la condición: el precio ha cruzado el nivel de 1,2550.
 
artmedia70:
Tiene una comprobación de mayor o igual a 1,2550. Es decir, cuando es más alto(el precio ha salido hace tiempo), el criterio sigue siendo cierto, lo que significa que se abrirán posiciones.
Hay que tener en cuenta la condición: el precio ha cruzado el nivel de 1,2550.


Gracias, creo que se puede hacer con el cálculo del tiempo. Por ejemplo, si el depósito en mi cuenta está en euros o en rublos, ¿puede mi Asesor Experto cometer errores?

 

Me podeis decir como el EA puede reducir el tamaño de la RAM, ponerla a cero de vez en cuando o algo así, porque un terminal se come hasta 100 MB y según me he dado cuenta, se come hasta llegar al 100%. Tengo 25 terminales instalados en un ordenador en alguna parte.

Le recuerdo que sólo tengo un gráfico en uso y no se muestra. Sin embargo, se utilizan datos de decenas de pares de divisas.

¿Puede el tamaño de los archivos de datos históricos afectar a la carga de memoria? Si dejamos sólo los datos diarios, ¿funcionará más rápido?

 
sss2019:


Gracias, creo que se puede hacer con time lapse. Por ejemplo, si el depósito está en EUR o RUB, ¿puede mi Asesor Experto cometer errores?

¿Por qué harías eso? Podría, por ejemplo, utilizar una MA con un periodo de 0. Comprueba la intersección de la primera y la segunda barra con el nivel. En el actual se abre.

Los errores pueden estar en la cabeza del programador, no en el depósito de la cuenta :)

 

Hola a todos.

Estimados profesionales - por favor, resuelvan mi pregunta: https://www.mql5.com/ru/forum/116542

 

Me podéis decir por qué este ciclo no funciona correctamente, no busca el máximo más alto, no encuentro el error. Se salta el máximo más alto y toma como resultado el máximo de la vela anterior.

Todos los valores de la matriz buystoploss son 0 por defecto.

En la imagen parece que el bucle ha encontrado el máximo de la 13ª vela, saltándose los máximos superiores

  i2=0;
  for(i=0;i<7;i++)
    {
    while(i2 <= 19)
      {
      if(High[i2]>buystoploss[i])
        {
        buystoploss[i]=High[i2];
        }
      i2++;
      }
    }
    Alert(" ",buystoploss[4]);
 
sss2019:

Me podéis decir por qué este ciclo no funciona correctamente, no busca el máximo más alto, no encuentro el error. Se salta el máximo más alto y toma como resultado el máximo de la vela anterior.

Todos los valores de la matriz buystoploss son 0 por defecto.


Esto es una broma:

Alert(" ",buystoploss[4]);

?

 
sss2019:

Me podéis decir por qué este ciclo no funciona correctamente, no busca el máximo más alto, no encuentro el error. Se salta el máximo más alto y toma como resultado el máximo de la vela anterior.

Todos los valores de la matriz buystoploss son 0 por defecto.

bueno para empezar el i2 solo se pone a cero una vez...