[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 708

 

Queda prohibida cualquier discusión sobre los corredores. Formular las preguntas de manera que no impliquen a las CV específicas. Por ejemplo: "cuáles son las reglas para elegir un corredor" y luego ir a probar si le conviene o no.

 

¿Me pueden decir si es posible atornillar un "respaldo" de fondo bajo el indicador?

No pude encontrarlo en la búsqueda...

Y una cosa más. ¿Cómo puedo eliminar correctamente todos los objetos creados por el indicador? ¿Simplemente los enumero?

 
Si el gráfico sólo contiene objetos creados por este indicador, ObjectsDeleteAll() es suficiente, y si no es necesario eliminar todos los objetos, ObjectDelete() en el bucle.
 
   for(int sd=100;sd>0;sd--)
   ObjectDelete("signal"+sd);
 for(int sd=0;sd<100;sd++)
 ObjectDelete("signal"+sd);
for(int sd=-1;sd<100;sd++)
ObjectDelete("signal"+sd);

Todo esto deja "señal00", "señal01", "señal02" etc., todo lo que está por encima de "señal10" se mata... ¿Dónde estoy estúpido?

 

¿Por qué no eliminar todos los objetos con la máscara "señal"? ¿O hay objetos con nombres similares de otros indicadores?

En general, Print() es útil en estos casos para ver lo que se intenta borrar.

 
Mathemat:

¿Por qué no eliminar todos los objetos con la máscara "señal" (sin espacio)?

En general, Print() es útil en estos casos para ver lo que se intenta borrar.

Porque aún no se me ha ocurrido :)

Los objetos se crean "de libro".

   for(int x=0;x<9;x++)
      for(int y=0;y<3;y++)
      {
         ObjectCreate("signal"+x+y,OBJ_LABEL,0,0,0,0,0);
         ObjectSet("signal"+x+y,OBJPROP_XDISTANCE,x*40+12);
         ObjectSet("signal"+x+y,OBJPROP_YDISTANCE,y*20+20);
         ObjectSetText("signal"+x+y,CharToStr(254),20,"Wingdings",Gold);

      }

Entonces sólo se modifica el contenido por ticks.

Voy a probar la impresión ahora, todavía no está claro... ¿No es mt 01 un número?

 
Abzasc:

Todo esto deja "señal00", "señal01", "señal02", etc., todo lo que está por encima de "señal10" se mata... ¿Dónde estoy estúpido?



tal vez el consejo sería "fuera de la caja", hay que buscar la singularidad... Una vez más, "fuera de la caja"... Por ejemplo, yo mismo consigo la unicidad a través de "fecha" + TF + "prefijo". tal vez esto sea "demasiado pesado" en un caso particular, pero al "expandirse" ayuda mucho.
 
Sí, me sorprende ver que la máscara de nombre no se puede introducir directamente. Esto es un inconveniente.
 
Abzasc:

Una cosa más. ¿Cómo puedo eliminar correctamente todos los objetos creados por el indicador? ¿Simplemente los enumero?

void clear_object(string s) {
        for(int i=ObjectsTotal()-1; i>=0;i--) {
                string vName = ObjectName(i);
     if (StringFind(vName,s) !=-1) ObjectDelete(vName);
  }
}

borra todos los objetos que contienen la cadena s - mi EA dibuja flechas llamadas "Flecha" + tiempo - borra todas las flechas clear_object("Flecha");
 
DDFedor:

Tal vez el consejo sería "fuera de la caja", deberíamos esforzarnos por ser únicos... Una vez más, "off-topic"... Yo mismo, por ejemplo, consigo la unicidad a través de "fecha" + TF + "prefijo". quizá sea una opción "demasiado pesada" en un caso concreto, pero a la hora de "ampliar" ayuda mucho.


Sí, eso es probablemente lo que va a pasar. He aquí una idea. El indicador crea una tabla, y en mi caso la señal ya es un grupo único.

Razón de la queja: