Una pregunta para los conocedores de MQL - página 3 1234567891011 Nuevo comentario [Eliminado] 2010.08.15 15:37 #21 En algún lugar obtuve el consejo de comprobar siempre si un objeto existe antes de usar ObjectCreate (u ObjectSet? no lo recuerdo) En general, utilizo esta variante if (ObjectFind("AsignalGF")==-1) {ObjectCreate("AsignalGF",OBJ_LABEL,0,0,0,0,0); ObjectSet("AsignalGF",OBJPROP_CORNER,1); ObjectSet("AsignalGF",OBJPROP_XDISTANCE,12*1); ObjectSet("AsignalGF",OBJPROP_YDISTANCE,1*5); ObjectSetText("AsignalGF",CharToStr(110),38,"Wingdings",DimGray);} keekkenen 2010.08.15 15:38 #22 leonid553: Buenas tardes. Ya pasé medio día y no puedo resolverlo. Por favor, indíqueme cuál puede ser el error en este caso. ¿Podría ser en la función INIT?el error podría ser 1. Si llama a WindowFind() en init() o en una función que es llamada en init 2. windowFind() y tiene declarada la #propiedad indicator_chart_window, ya que windowFind() se llama para la subventana 3. no hay ningún indicador con el nombre que se busca en la ventana Cualquier pregunta de los Indicadores de élite :) [¡AVISO CERRADO!] Cualquier pregunta [Eliminado] 2010.08.15 15:47 #23 keekkenen: 3. el indicador con el nombre que busca no está en la ventana mmm... ¿qué quieres decir con objeto? keekkenen 2010.08.15 16:22 #24 Abzasc: mmm... ¿qué quieres decir con objeto? ¿Qué tiene que ver esto con el objeto? El objeto es secundario, porque está intentando ser renderizado en una ventana que no existe, además, si el objeto es creado, no habrá ningún error, si el objeto es creado secundariamente, ObjectCreate() devolverá false [Eliminado] 2010.08.15 16:36 #25 keekkenen: ¿Qué tiene que ver esto con el objeto? El objeto es secundario, porque está intentando ser renderizado en una ventana que no existe, además, si el objeto es creado, no se producirá ningún error, si el objeto es creado secundariamente, ObjectCreate() devolverá false Lo tengo, gracias :) Leonid Borsky 2010.08.15 18:19 #26 keekkenen: error puede ser 1. si llamas a WindowFind() en init() o en la función que se llama en init 2. windowFind() y tiene declarada la #propiedad indicator_chart_window, porque windowFind() se llama para la subventana 3. el indicador con el nombre que busca no está presente en la ventana 1. No, llamo a la función en START : object("Symbol1", Symbol_1, 11, Color_1, 5); 2. Ha declarado la #propiedad indicador_separar_ventana 3. Entonces, ¿cómo puede faltar un indicador si su ventana está presente? Aquí está la función propiamente dicha: void object(string name, string _text, int fontsize, color color_, int value) { // задаем окно индикатора ObjectCreate(name+ WindowExpertName(), OBJ_LABEL, WindowFind(WindowExpertName()), 0, 0); // задаем текстовую метку в окне ObjectSetText(name+ WindowExpertName(), _text, fontsize, "Times New Roman", color_); ObjectSet(name+ WindowExpertName(), OBJPROP_CORNER, 1);//задаем правый угол ObjectSet(name+ WindowExpertName(), OBJPROP_XDISTANCE, 4);//задаем х-координату ObjectSet(name+ WindowExpertName(), OBJPROP_YDISTANCE, value);//задаем у-коордтнату } No llamo a nada en absoluto en INIT. ¿Tal vez debería añadir algo allí también? A question for MQL Preguntas de los principiantes [¡Archivo!] Cualquier pregunta de Leonid Borsky 2010.08.15 18:27 #27 Abzasc:En algún lugar obtuve el consejo de comprobar siempre si un objeto existe antes de usar ObjectCreate (u ObjectSet? no lo recuerdo) En general, utilizo esta variante. ¿Qué nombre debo especificar en(ObjectFind("AsignalGF") - ¿Qué debo poner el nombre del indicador o el nombre (array) de la línea dibujada por el indicador? [Eliminado] 2010.08.15 18:31 #28 leonid553: Qué nombre debo poner en (ObjectFind("AsignalGF") - ¿nombre del indicador o el nombre (matriz) de la línea dibujada por el indicador? El nombre del objeto que se está creando/modificando. Leonid Borsky 2010.08.15 18:50 #29 Creo que lo tengo. He puesto el nombre del objeto en la función. ObjectCreate(name+ WindowExpertName(), OBJ_LABEL, WindowFind(WindowExpertName()), 0, 0); [Eliminado] 2010.08.15 19:09 #30 leonid553: He puesto el nombre del objeto en la función. ObjectCreate(name+ WindowExpertName(), ....); Sí, eso es lo que estamos buscando. 1234567891011 Nuevo comentario
En algún lugar obtuve el consejo de comprobar siempre si un objeto existe antes de usar ObjectCreate (u ObjectSet? no lo recuerdo)
En general, utilizo esta variante
Buenas tardes.
Ya pasé medio día y no puedo resolverlo.
Por favor, indíqueme cuál puede ser el error en este caso. ¿Podría ser en la función INIT?el error podría ser
1. Si llama a WindowFind() en init() o en una función que es llamada en init
2. windowFind() y tiene declarada la #propiedad indicator_chart_window, ya que windowFind() se llama para la subventana
3. no hay ningún indicador con el nombre que se busca en la ventana
3. el indicador con el nombre que busca no está en la ventana
mmm... ¿qué quieres decir con objeto?
¿Qué tiene que ver esto con el objeto?
El objeto es secundario, porque está intentando ser renderizado en una ventana que no existe,
además, si el objeto es creado, no habrá ningún error, si el objeto es creado secundariamente, ObjectCreate() devolverá false
¿Qué tiene que ver esto con el objeto?
El objeto es secundario, porque está intentando ser renderizado en una ventana que no existe,
además, si el objeto es creado, no se producirá ningún error, si el objeto es creado secundariamente, ObjectCreate() devolverá false
error puede ser
1. si llamas a WindowFind() en init() o en la función que se llama en init
2. windowFind() y tiene declarada la #propiedad indicator_chart_window, porque windowFind() se llama para la subventana
3. el indicador con el nombre que busca no está presente en la ventana
1. No, llamo a la función en START : object("Symbol1", Symbol_1, 11, Color_1, 5);
2. Ha declarado la #propiedad indicador_separar_ventana
3. Entonces, ¿cómo puede faltar un indicador si su ventana está presente?
Aquí está la función propiamente dicha:
No llamo a nada en absoluto en INIT. ¿Tal vez debería añadir algo allí también?En algún lugar obtuve el consejo de comprobar siempre si un objeto existe antes de usar ObjectCreate (u ObjectSet? no lo recuerdo)
En general, utilizo esta variante.
¿Qué nombre debo especificar en(ObjectFind("AsignalGF") -
¿Qué debo poner el nombre del indicador o el nombre (array) de la línea dibujada por el indicador?
Qué nombre debo poner en (ObjectFind("AsignalGF") -
¿nombre del indicador o el nombre (matriz) de la línea dibujada por el indicador?
Creo que lo tengo. He puesto el nombre del objeto en la función.
ObjectCreate(name+ WindowExpertName(), OBJ_LABEL, WindowFind(WindowExpertName()), 0, 0);
He puesto el nombre del objeto en la función. ObjectCreate(name+ WindowExpertName(), ....);