Una pregunta para los conocedores de MQL - página 4

 
Aback... Me metí en la "Pregunta para los expertos en MQL"... Lo siento, en todo caso, soy tan buen programador como d.... ¡pero siempre soy objetivo! :)
 
leonid553:

Creo que lo tengo. He puesto el nombre del objeto en la función.

ObjectCreate(name+ WindowExpertName(), OBJ_LABEL, WindowFind(WindowExpertName()), 0, 0);


No se trata de objetos...

Lo escribes en init()

IndicatorShortName("CC-STOKS ");

Utiliza WindowExpertName() como nombre de indicador en una función de representación...

Decídete, querido amigo (perdón por ser familiar), o el indicador se llama "CC-STOKS" (un alias), o se llama como el experto...

 

Estoy hablando de mi...

Bueno, no veo la comprobación de un objeto.

 

Se ha eliminado la línea IndicatorShortName("CC-STOKS ");

Parece que ahora funciona.

//------------------------------------------

Lo he comprobado.

 string info =ObjectFind("Symbol1+WindowExpertName()");
     IndicatorShortName(info);     

El comentario devuelve "-1".

Y - no importa si el "alias" está ahí o si está borrado.

 

Sí, funciona bien...

Gracias a todos los que ayudaron y respondieron a las preguntas.

 

Me he tomado unas cuantas cervezas, pero me estás dejando sin palabras...

dejar claro lo que está pasando...


o

1. sin nombre corto y

static int WINDOW = -1;

int start(){
   if (WINDOW == -1) WINDOW = WindowFind( WindowExpertName() );
}

su init() tal cual

o establecer el nombre corto en su int()

string short = "CC-STOKS";

int init(){
   IndicatorShortName( short );
   // остальное прочее
}

int start(){
   if (WINDOW == -1) WINDOW = WindowFind( short );
}

y luego, al dibujar los objetos, utilizar WINDOW como número de subventana

ObjectCreate(name + WindowExpertName(), OBJ_LABEL, WINDOWS, 0, 0);

la función del objeto debería tener el siguiente aspecto

void object(string name, int window, string text, color col, int corner,
            int x, int y, bool back = false, int fontsize = 9, 
            string fontname = "Tahoma") {
   if (ObjectFind(name)==-1)      
      ObjectCreate(name, OBJ_LABEL, window, 0, 0);
   ObjectSetText(name, text, fontsize, fontname, col);
   ObjectSet(name, OBJPROP_CORNER, corner);
   ObjectSet(name, OBJPROP_BACK,back);
   ObjectSet(name, OBJPROP_XDISTANCE, x);
   ObjectSet(name, OBJPROP_YDISTANCE, y);     
}

de esta manera, todos los atributos clave se pasan como parámetros, y por cierto, el nombre del objeto debe ser formado fuera de la función ...

 
DE ACUERDO. Revisando sus instrucciones...
 

Buenas tardes. Por favor, avisa.

¿Es posible dibujar un triángulo en la ventana del indicador? Si es así, ¿cómo se establecen las coordenadas?

No encuentro la forma de establecer las coordenadas de un triángulo en la ayuda de mql.

 
Rita:

Buenas tardes. Por favor, avisa.

¿Es posible dibujar un triángulo en la ventana del indicador? Si es así, ¿cómo se establecen las coordenadas?

No encuentro la forma de establecer las coordenadas de un triángulo en la ayuda de mql.


ObjectCreate(имя_объекта, OBJ_TRIANGLE, 0, вершина1_время, вершина1_цена, вершина2_время, вершина2_цена, вершина3_времявершина3_цена);
Si no está en la subventana principal, utilice el número de subventana correspondiente en lugar de 0: https://docs.mql4.com/ru/windows/WindowFind
 


ObjectCreate(name, OBJ_TRIANGLE, WindowFind(WindowExpertName(), Time[-1],vertex1_price,

Tiempo[-5],precio_vértice2,

Tiempo[-7],precio_vértice3, );

//--------------------------------------------------------------------------------------------------------------------------

He establecido las coordenadas de los nodos triangulares por tiempo (por ejemplo - por tiempo de apertura de las barras futuras). El resto no lo tengo muy claro. No es el precio lo que aparece en la escala de la ventana del indicador. Es la gradación de los valores de los indicadores.

Necesito "poner" un triángulo con topes rígidos, independientemente del precio.

Y, preferiblemente, debe estar fijada de forma rígida en la esquina derecha (o inferior).

Y no sé cómo establecer las coordenadas de sus vértices - en el eje vertical de la escala del indicador: