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

 
Rita:

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 entiendo cómo establecer las coordenadas de sus vértices - a lo largo del eje vertical de la escala del indicador :


.... ... No hay respuesta de los expertos...

Aparentemente, tengo que tener en cuenta que es imposible dibujar el triángulo en la ventana del indicador utilizando MQL.
 
Rita:
Aparentemente, hay que tener en cuenta que es imposible dibujar un triángulo en la ventana del indicador utilizando MQL.
¿Cuál era la tarea inicial?
 

La tarea inicial es así.

Me dijeron que hiciera esto. Si las líneas de precios de los instrumentos indicadores en la barra cero son convergentes,

es decir, abs. en( Símbolo1[0]-Símbolo2[0]) < ( Símbolo1[1] - Símbolo2[1])

entonces el triángulo debe dibujarse con el ángulo recto - véase la Fig.

Si las líneas son divergentes, el punto está a la izquierda.

He anotado las condiciones. Pero no puedo dibujar el triángulo...

 

El precio debe establecerse en unidades del indicador y la hora como de costumbre.

Pero seguirá pegado al gráfico, no a la pantalla.

Si resulta difícil entender qué coordenadas de precios deben fijarse, el algoritmo es el siguiente:

Si el indicador es autoescalable, definimos el número de barras de la ventana, calculamos el mínimo y el máximo de los valores del indicador en este intervalo y los utilizamos como puntos base.

Si el indicador es de escala fija, las coordenadas se establecen mediante constantes.

 
Rita:

El tiempo es un array, no tiene elementos negativos.

El tiempo futuro puede establecerse así: Tiempo[0]+X*Periodo()*60.

Verticalmente, los valores de la escala del indicador se establecen.

 

Ya veo. Gracias a todos.

Es más fácil escribir con palabras "convergencia o divergencia" que molestarse con un triángulo... -

 
Rita:

.... ... No hay respuesta de los expertos...

Aparentemente, tengo que tener en cuenta que es imposible dibujar un triángulo en la ventana del indicador utilizando MQL.


Tal vez las flechas sean mejores

ObjectCreate("DevIM0", OBJ_ARROW, window, Time[0]+5500, 0);
ObjectSet("DevIM0", OBJPROP_ARROWCODE, 232);
ObjectSet("DevIM0", OBJPROP_WIDTH, 4);

 

poner una etiqueta en la esquina en la fuente Wingdings 2 y no molestar...

 
Gracias. También puedes probar con las flechas.
 
Rita:
Gracias. También podríamos probar las flechas.


ObjectCreate("DevIM0", OBJ_TRIANGLE, window, Time[0]+5500, 0,Time[0]+8500, 30,Time[0]+8500, -1*30);

El triángulo tampoco está mal.