[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 20

 
Dimka-novitsek:
Uf, no es suavidad, sino lentitud. Aquí hay diez:

He aquíun vistazo a los recuentos estocásticos de los libros de texto.

 

Chiripaha:

El texto está ligado al precio de la línea + 3*Punto (es decir, lo pongo ligeramente más alto), pero aun así, cuando cambio el tamaño del gráfico (ventana) el texto está ahora por encima de la línea, ahora por debajo, ahora al nivel de la línea (salta)... ¿Por qué ocurre esto? - Estoy dando la coordenada exacta del precio. ¿Cómo se resuelve?

He buscado y probado cómo lo hacen otros, pero el efecto es similar. Quiero entender cómo se elimina este "rebote". Y lo más importante, por qué parece que las coordenadas son difíciles: ¿el precio y el tiempo?

TarasBY:

Se introduce un texto en la descripción del objeto y se permite que el gráfico muestre las descripciones de los objetos (una de las formas).

¿Cómo implementarlo de forma programada? Busqué y busqué - no he encontrado. Por las manos funciona, pero qué tipo de comandos deben ser....
 
Chiripaha:
¿Cómo se implementa esto de forma programada? He buscado y rebuscado y no lo he encontrado. A mano funciona, pero qué tipo de comandos deben ser....

bool ObjectSetText( string name, string text, int font_size, string font_name=NULL, color text_color=CLR_NONE)
Cambio de descripción del objeto. Para los objetos OBJ_TEXT y OBJ_LABEL esta descripción se muestra en el gráfico como una cadena de texto. Si tiene éxito, la función devuelve TRUE, en caso contrario FALSE. Para obtener más información sobre el error, llame a GetLastError().
Los parámetros font_size, font_name y text_color sólo se utilizan para los objetos OBJ_TEXT y OBJ_LABEL. Para otros tipos de objetos, estos parámetros se ignoran.
Véase también ObjectDescription().
Parámetros:
nombre- nombre del objeto.
texto- Descripción textual del objeto.
tamaño_de_fuente- Tamaño de la fuente en puntos.
nombre_de_fuente- Nombre de la fuente.
color_de_texto- Color_de_texto.
Ejemplo:
ObjectSetText("text_object", "Hello world!", 10, "Times New Roman", Green);
 
TarasBY:


Véase también ObjectDescription().

Woohoo... DESCRIPCIÓN... : )))) He estado buscando donde se hace.... ¡Muchas gracias! : )))

 
Chiripaha:

Woohoo... DESCRIPCIÓN... : )))) Me he estado preguntando dónde se hace.... ¡Muchas gracias! : )))

¡¡¡ ObjectDescription() sólo devuelve una propiedad (en este caso una descripción), PERO no la establece!!!

 
TarasBY:

¡¡¡ ObjectDescription() sólo devuelve una propiedad (en este caso una descripción), PERO no la establece!!!

Sí... Aquí, acabo de resolver eso... ¿Cómo se instala? : ((

Se refleja allí manualmente si lo estableces a través de la ventana de propiedades.

 
Chiripaha:

Sí... Aquí, acabo de resolver eso... ¿Cómo se instala? : ((

Está ahí manualmente si lo estableces en la ventana de propiedades.

¿Con quién estoy hablando? - https://forum.mql4.com/ru/52892/page20#732354
 
TarasBY:
¿Y a quién respondo yo? - https://forum.mql4.com/ru/52892/page20#732354

: ))))))) ¡Sí! Lo he descubierto... - Ahora he experimentado con él después de la paliza. No sabía que se podía hacer eso... : )) Me fijé en cómo lo hacen otros y lo hice por analogía. Y resulta que esta función "..SetText" es independiente. Pensé que sólo funcionaría después de la creación del objeto de texto.

Muchas gracias de nuevo. : ))) Aún así, aprendí algo. : ))

 
rigonich:


Imprime el estado de las banderas por separado para cada condición. Esto se debe a que las condiciones no tienen en cuenta el estado de la segunda bandera.

P.D. Y es más conveniente imprimirPrint("flag=",flag, "flagg=",flagg) para evitar confusiones;


print("flag=",flag, "flagg=",flagg);

¡imprime flag=1 flagg=0 AS ORDER!

¡pero de alguna manera la señal pasa CADA TICK!

es decir, la condición if(Ma_1<Ma_2 && flag==0) flag se ignora ¡COMPLETO! ¿cómo es eso? flag imprime flag=1 y pasa inmediatamente if(Ma_1<Ma_2 && flag==0) ->Sound

-----------------

se puede simplificar este código a lo siguiente

if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1 }

como resultado el sonido debe ir UNA vez. ¡¡¡Y pita con cada tic!!!

 
lottamer:


printed Print("flag=",flag, "flagg=",flagg);

¡imprime flag=1 flagg=0 COMO ORDENADO!

¡pero de alguna manera la señal pasa CADA TICK!

es decir, la condición if(Ma_1<Ma_2 && flag==0) flag se ignora ¡COMPLETO! ¿cómo es eso? flag imprime flag=1 y pasa inmediatamente if(Ma_1<Ma_2 && flag==0) ->Sound

-----------------

se puede simplificar este código a lo siguiente

if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1 }

como resultado el sonido debe ir UNA vez. ¡¡¡Y pita con cada tic!!!


¿Tiene la bandera como variable local?

P.D. Cuando no está muy claro lo que ocurre, es mejor imprimir los valores antes y después de la función u operador que se quiere comprobar, para ver cómo cambian exactamente. A veces los valores de entrada no son lo que esperamos que sean, y encontrar dónde y por qué se convierten en lo que son es mucho más fácil en el código que adivinar por qué el programa no funciona correctamente.
Razón de la queja: