Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 563

 
AlexeyVik:

Bueno, entonces tienes que averiguar qué quieres escribir primero, un EA o un indicador...

Tal vez me haya perdido algo, pero tengo entendido que sería un indicador...

Ya tengo un indicador. EA también, pero no estoy satisfecho con la velocidad de optimización.

He cambiado algunas cuerdas y parece que la velocidad ha mejorado. No sé si es correcto.

int counted_bars=IndicatorCounted(),
   i,limit1,limit2,limit3,limit4; 
limit1=Bars-counted_bars-1;
   limit2=limit1;
   limit3=limit2;
   limit4=limit3;
   if(limit1>0) 
     {
      limit1=limit1-Period_MA_1-1;
      limit2=limit1-p2;
      limit3=limit2-p3;
      limit4=limit3-p4;
     }

He sustituido Bares dentro del operador condicional por límite1.

Si entiendo bien

limit1=Bars-counted_bars;//расчитываем количество непосчитанных баров

y luego restamos el periodo y calculamos el resto de las variables.

Una cosa que no entiendo, si Bares es el número de barras de la ventana, le restamos las barras no contadas.

Cuantos más unos sin contar tengamos, menor será el número que obtengamos tras la resta y, por tanto, menos iteraciones en el bucle.

Pero es viceversa. Entonces, IndicatorCounted(), en pocas palabras, es ¿cuántas barras más antiguas que la primera?

El código original está en la p. 560. Sólo que sin estas líneas:

double impuls;
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
 

así

int start()
  {
   int counted_bars=IndicatorCounted(),
   i,limit1,limit2,limit3,limit4;
   double impuls;
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
 
   limit1=Bars-counted_bars-1;
   for(i=limit1;i>=0;i--) ExtMapBuffer1[i]=Close[i]-Close[i+Period_MA_1];
   for(i=limit1;i>=0;i--) ExtMapBuffer2[i]=iMAOnArray(ExtMapBuffer1, 0, p2, 0, MODE_EMA,i);
   for(i=limit1;i>=0;i--) ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer2, 0, p3, 0, MODE_EMA,i);
   for(i=limit1;i>=0;i--) ExtMapBuffer4[i]=iMAOnArray(ExtMapBuffer3, 0, p4, 0, MODE_EMA,i);
   return(0);
  }
 
alxm:

La etiqueta no sigue el gráfico...

Ahora probé lapropiedad OBJPROP_XSIZE del objeto LABEL, tampoco funciona. Es decir, devuelve 0. ¿No se aplica?
 
alxm:

Ahora he intentadoutilizar la propiedad OBJPROP_XSIZE del objeto LABEL pero tampoco funciona. Devuelve 0. ¿No se aplica?

No lo he comprobado con OBJ_LABEL, pero funciona con OBJ_EDIT. Por cierto, también se puedeutilizar en lugar de OBJ_LABEL, aún más interesante y se puede establecer el color de fondo y el color del marco. Si establecemos OBJPROP_READONLY = true,no lo distinguirá de OBJ_LABEL.


Se ve así. SPREAD 30 es OBJ_LABELy el resto es OBJ_EDIT .

Sí, lo he comprobado, no funciona con OBJ_LABEL.

 
AlexeyVik:

No lo he comprobado con OBJ_LABEL, pero funciona con OBJ_EDIT. Por cierto, también se puedeutilizar OBJ_LABEL en lugar de OBJ_LABEL, aún más interesante y se puede establecer el color de fondo y el color del marco. Si establece OBJPROP_READONLY = true,no lo distinguirá de OBJ_LABEL.


Se ve así. SPREAD 30 es OBJ_LABELy el resto es OBJ_EDIT .

Sí, lo he comprobado, no funciona con OBJ_LABEL.


Gracias. Me pueden decir cómo usar TextOut para mostrar una línea de texto en la pantalla. No he podido resolverlo con la ayuda de
 
alxm:

Gracias. Me pueden decir cómo usar TextOut para mostrar una línea de texto en la pantalla. No he podido averiguar nada con la ayuda.
No he intentado averiguarlo. Tal vez alguien en MQ pueda decirme.Que expliquen OBJPROP_XSIZE del objeto OBJ_LABEL también...
 
AlexeyVik:
No he intentado averiguarlo. Tal vez alguien de MQ pueda decirme. Tambiénpueden explicar OBJPROP_XSIZE del objeto OBJ_LABEL ...


¿A qué sucursal debo hacer una pregunta?
 
Dime el nombre del script - muestra el historial de operaciones en una cuenta demo.
 
Por favor, aconsejen cómo explicarle al EA que cierre todo cuando se toque el bollinger.
 
Hola a todos .... ¿podéis decirme cómo fijar el valor de una variable en un script?