Características del lenguaje mql4, sutilezas y técnicas - página 16

 
Espero que sean amigos)
 
Fast528:
Espero que sean amigos)

"Guerra de Titanes" no va a suceder.

 
Espero que la rama no esté muerta. Tengo el siguiente problema: tengo un monitor 4k, por lo tanto en Windows mi fuente se ve ampliada (200% de tamaño). Cuando se hacen objetos de texto para los indicadores, el tamaño del texto se toma de la configuración de Windows y también se escala, como resultado si hago algo que parece normal en un sistema normal, en mi ordenador el texto se superpone, y si lo hago normal para mí, en la configuración normal el texto es demasiado pequeño. He hecho un ajuste en el indicador para que el usuario pueda elegir si se escala o no, pero no me gusta mucho.

¿Hay alguna manera de saber directamente desde el programa qué fuente está actualmente en las ventanas (ampliada o no) y hacer esta corrección en el código, sin tocar a los usuarios? Solo que algunas personas pueden tener un monitor 4k con texto escalado y la mayoría de los indicadores (donde se usa el texto) del mercado se ven feos y desagradables.
 
Olga Miakhovich:
Espero que el hilo no esté muerto. Tengo el siguiente problema: Tengo un monitor 4k, por lo tanto en Windows tengo una fuente ampliada (tamaño 200%). Cuando haces objetos de texto para los indicadores, el tamaño del texto se toma de la configuración de Windows y también se escala, como resultado, si haces algo que parece normal en un sistema normal, en mi ordenador el texto se superpone, y si lo haces normal para mí, entonces en la configuración normal el texto es demasiado pequeño. He hecho un ajuste en el indicador para que el usuario pueda elegir si se escala o no, pero no me gusta mucho.

¿Hay alguna manera de saber directamente desde el programa qué fuente está actualmente en las ventanas (ampliada o no) y hacer esta corrección en el código, sin tocar a los usuarios? Algunas personas pueden tener un monitor 4k con texto escalado y la mayoría de los indicadores (donde se utiliza el texto) del mercado se ve feo.

¿Tal vez deberías cambiar a trabajar con recursos, o con CCanvas?

A continuación, puede ajustar el tamaño de la fuente de acuerdo con la configuración del sistema operativo.

Lea sobre TextOut(), TextSetFont()

Документация по MQL5: Графические объекты / TextSetFont
Документация по MQL5: Графические объекты / TextSetFont
  • www.mql5.com
Устанавливает шрифт для вывода текста методами рисования и возвращает результат успешности этой операции. По умолчанию используется шрифт Arial и размер -120 (12 pt). [in]  Размер шрифта, который может задаваться положительными и отрицательными значениями. При положительных значениях размер выводимого текста не зависит от настроек размеров...
 
Ya está, solución encontrada. Para los que se preguntan qué es: Utilice la funciónTerminalInfoInteger(TERMINAL_SCREEN_DPI); con el escalado estándar será 96. Si es 2 veces más grande, entonces la escala será 2 veces en consecuencia.
 
Olga Miakhovich:
Ya está, la solución está encontrada. Para los que se preguntan qué es: Utilice la función TerminalInfoInteger(TERMINAL_SCREEN_DPI); con el escalado estándar será 96. Si es 2 veces más grande, entonces la escala será 2 veces en consecuencia.

La solución está en la ayuda

Ejemplo de cálculo del factor de escala:

//--- creamos un botón con ancho 1.5" en la pantalla
int screen_dpi =TerminalInfoInteger(TERMINAL_SCREEN_DPI);//--- get DPI of user monitor
int base_width =144;//ancho base en puntos de pantalla para monitores estándar con DPI=96
int width = (button_width *screen_dpi) / 96;//calcular el ancho del botón para el monitor del usuario (con DPI)
...

//--- calcular el factor de escala en porcentajes
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI)* 100) / 96;
//--- usando elfactor de escala
width=(base_width * scale_factor) / 100;

 
Vladimir Pastushak:

La solución está en la ayuda

Sí, pero no es para las fuentes.

Olga Miakhovich:
Ya está, la solución está encontrada.

¿de verdad? ¿el escalado afecta a los ppp del monitor?

 
Características de ArrayResize para matrices multidimensionales
void OnStart()
{
  int Array[][2];
  
  Print(ArrayResize(Array, 7)); // MQL5 - 7, MQL4 - 14
  Print(ArraySize(Array));      // 14
}
 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Peculiaridades del lenguaje mql5, consejos y trucos

fxsaber, 2019.02.19 22:28

Se ve que la posición se abrió y se cerró al mismo precio. Pero sus precios no son iguales cuando se comparan sin normalización.

 
Pues sí.
Razón de la queja: