Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1933

 
Você pode me dizer como administrar a ordem dos planos (primeiro plano, fundo) dos objetos gráficos? Por exemplo, tenho um pequeno campo de informações quadrado com um gráfico embaixo e uma linha de tendência subindo no próprio campo, e uma etiqueta escondida embaixo do campo.
 
Ivan Butko #:
Você pode me dizer como gerenciar a seqüência de planos (primeiro plano, fundo) de objetos gráficos? Por exemplo, tenho um pequeno campo de informações quadrado com um gráfico debaixo dele, e uma linha de tendência está subindo no próprio campo, e uma etiqueta está se escondendo debaixo do campo.
  1. Ajustar OBJPROP_TIMEFRAMES para OBJ_NO_PERIODS
  2. Ajustar o parâmetro OBJPROP_TIMEFRAMES do objeto para OBJ_ALL_PERIODS
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
  • www.mql5.com
Видимость объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin #:
  1. Ajustar OBJPROP_TIMEFRAMES para OBJ_NO_PERIODS
  2. Ajustar o parâmetro OBJPROP_TIMEFRAMES para OBJ_ALL_PERIODS

Artyom, eu provavelmente não entendi bem, talvez tenha feito a pergunta tortuosamente:

Existem três (quatro, cinco...) objetos feitos pelo homem (ObjectCreate). O primeiro se esconde atrás do terceiro, o segundo está em primeiro plano. Como definir um para primeiro plano, segundo para segundo, terceiro para segundo plano. Para que o primeiro objeto seja sempre visível, o segundo é sempre visível, mas não atrás do primeiro. O terceiro objeto também é sempre visível, mas não atrás do primeiro e do segundo. É uma espécie de alternância de planos.
Eu simplesmente não entendia bem a TF.

 
Ivan Butko #:

Artyom, eu provavelmente não entendi bem, talvez tenha feito a pergunta erroneamente:

Existem três (quatro, cinco...) objetos feitos pelo homem (ObjectCreate). O primeiro se esconde atrás do terceiro, o segundo está em primeiro plano. Como definir um para primeiro plano, segundo para segundo, terceiro para segundo plano. Para que o primeiro objeto seja sempre visível, o segundo é sempre visível, mas não atrás do primeiro. O terceiro objeto também é sempre visível, mas não atrás do primeiro e do segundo. Uma espécie de plano alternado.
Eu simplesmente não entendia bem o TF.

Faça um revezamento como descrito acima para cada um de seus objetos. A alternância afetará o layout. O último ao qual esta ação será aplicada será o mais alto.

Uma vez que você tenha determinado que qualquer objeto gráfico que deveria estar abaixo de seus objetos apareceu no gráfico, faça alternadamente uma exibição oculta para cada um de seus objetos (como eu escrevi acima). Esta ação traz o objeto para o primeiro plano do gráfico. Seu primeiro objeto ao qual esta ação foi aplicada estará na parte inferior (mas acima de qualquer outro objeto gráfico desenhado no gráfico depois que seus objetos tiverem sido criados), o segundo estará acima do primeiro, o terceiro estará acima do primeiro e segundo, e assim por diante. Todos os objetos que foram ocultos estarão acima do resto dos objetos gráficos.

Ou seja, a ordem em que os objetos escondidos são aplicados a seus objetos estabelece sua ordem um acima do outro. Mas todos eles aparecerão acima de tudo no gráfico.

A lógica é esta:

Se qualquer objeto gráfico aparecer no gráfico que não deva sobrepor seus objetos, você faz uma exibição oculta para cada um de seus objetos na ordem em que eles devem aparecer visualmente (primeiro na parte inferior, último na parte superior). Depois de esconder-exibir todos os seus objetos, faça ChartRedraw().
Isto é importante - redesenhar a carta somente depois que todos os seus objetos tiverem sido ocultos - para que visualmente não haja cintilação na carta.

 
Artyom Trishkin #:

Faça à vez o que foi descrito acima para cada uma de suas propriedades. A rotação afetará o posicionamento. O objeto mais recente ao qual esta ação é aplicada será o mais alto.

Uma vez que você tenha determinado que qualquer objeto gráfico que deveria estar abaixo de seus objetos apareceu no gráfico, faça alternadamente uma exibição oculta para cada um de seus objetos (como eu escrevi acima). Esta ação traz o objeto para o primeiro plano do gráfico. Seu primeiro objeto ao qual esta ação foi aplicada estará na parte inferior (mas acima de qualquer outro objeto gráfico desenhado no gráfico depois que seus objetos tiverem sido criados), o segundo estará acima do primeiro, o terceiro estará acima do primeiro e segundo, e assim por diante. Todos os objetos que foram ocultos estarão acima do resto dos objetos gráficos.

Ou seja, a ordem na qual os objetos escondidos são aplicados a seus objetos determina sua ordem uns sobre os outros. Mas todos eles aparecerão acima de tudo no gráfico.

A lógica é esta:

Se qualquer objeto gráfico aparecer no gráfico que não deva sobrepor seus objetos, você faz uma exibição oculta para cada um de seus objetos na ordem em que eles devem aparecer visualmente (primeiro na parte inferior, último na parte superior). Depois de esconder-exibir todos os seus objetos, faça ChartRedraw().
Isto é importante - redesenhar a carta somente depois que todos os seus objetos tiverem sido ocultos - para que visualmente não haja cintilação na carta.

Ahhhh, muito obrigado! Agora eu entendi. Ótimo
 
Por favor, mais uma coisa: mudei de um monitor de 2k para um laptop 1080 e todo o texto ficou grande e sobrepôs-se um ao outro. Você pode aconselhar como resolver este problema?
 
Ivan Butko #:
Por gentileza, mais uma coisa: mudou de monitor 2k para laptop 1080 e todo o texto ficou muito grande e sobrepôs-se um ao outro. Favor aconselhar como resolver este problema

É mais complicado do que isso. Você precisa usar recursos para produzir gráficos. Leia TextSetFont() - trata-se do tamanho da fonte em pixels lógicos.

Assim, TextOut() - sobre a saída de texto do recurso. Você pode encontrar tudo sobre isso na documentação.

Документация по MQL5: Графические объекты / TextSetFont
Документация по MQL5: Графические объекты / TextSetFont
  • www.mql5.com
TextSetFont - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin #:

É mais complicado do que isso. Você precisa usar recursos para produzir gráficos. Leia TextSetFont() - trata-se do tamanho da fonte em pixels lógicos.

Assim, TextOut() - sobre a saída de texto do recurso. E tudo sobre isso - através de links na documentação.

Consegui! Muito obrigado.

 
Ivan Butko #:
Por favor, mais uma coisa: mudei de um monitor de 2k para um laptop 1080 e todo o texto ficou grande e sobrepôs-se um ao outro. Favor aconselhar como resolver este problema
Ferramentas Windows. A configuração gráfica também deve ajustar a fonte grande e pequena.
 
Valeriy Yastremskiy #:
Com a ajuda do Windows. As fontes grandes e pequenas também devem ser ajustadas.

E se houver dois monitores? Diferentes...

Razão: