Por favor, dê mais liberdade para gerir as janelas gráficas - página 6

 
barabashkakvn:
E como se faz o "Crosshair" funcionar num objecto gráfico - quer dizer, quando se cruza a mira sobre um objecto gráfico, os dados OHLC são exibidos na barra de estado?
Ainda não tentei fazer isso. Talvez seja possível com estas funções:ChartXYToTimePrice() e ChartTimePriceToXY().
 
tol64:
Ainda não tentei fazer isto. Talvez seja possível com estas funções:ChartXYToTimePrice() e ChartTimePriceToXY().
É possível, ao que parece, só que não há acesso à linha de estado. Quero uma imitação completa "Crosshair" no objecto gráfico, para trabalhar como num gráfico normal - com a exibição na barra de estado.
 
barabashkakvn:
Isso é possível, penso eu, excepto que não há acesso à barra de estado. Gostaria de uma imitação completa "Crosshair" no objecto gráfico, para que funcione como um gráfico normal - com visualização na barra de estado.

Depois, os objectos gráficos precisam de ser mais desenvolvidos. Sou a favor de ter o maior número possível de possibilidades tanto com objectos gráficos como com janelas gráficas. Não vejo qualquer razão para ser contra, apenas por ser contra. ;)

Uma coisa boa seria recolher todos os casos em que algumas ou outras características são necessárias em relação a esta questão, e apresentá-los no primeiro posto do inquérito. A sondagem deve ser ilimitada no tempo. Caso contrário, afundam-se frequentemente e poucas pessoas os vêem devido ao facto de que talvez não olhem para o fórum com frequência.

 
Sugiro que ponha aqui todos os casos em que precisa de algum tipo de janela ou gráfico agora mesmo. Vamos discutir. Penso que podemos fazer uma sondagem de longa duração, e depois podemos mover todo este fio para a sondagem.
 

De qualquer modo, aqui está uma semi-substituição dos controlos da janela gráfica:

 

Quando o cursor se move sobre um gráfico normal, a barra de estado exibe valores OHLC, mas quando o cursor se move sobre um objecto do gráfico, os valores OHLC não são traduzidos para a barra de estado. Uma vez que a MQL não dá acesso à barra de estado, temos de arranjar uma barra de estado de substituição para o objecto gráfico.

Até agora posso pensar em etiquetas de texto OBJ_LABEL.

 
barabashkakvn:

Quando o cursor se move sobre um gráfico normal, a barra de estado exibe valores OHLC, mas quando o cursor se move sobre um objecto do gráfico, os valores OHLC não são traduzidos para a barra de estado. Uma vez que a MQL não dá acesso à barra de estado, temos de arranjar uma barra de estado de substituição para o objecto gráfico.

Até agora, as etiquetas de texto OBJ_LABEL vêm-me à mente.

O nosso apoio técnico respondeu que não será possível transmitir valores OHLC das barras de objectos OBJ_CHART para a barra de estado. Por conseguinte, teremos de implementar a nossa própria barra de status:

A sua própria barra de estado

 

Com a colocação da barra de estado (sob a forma de OBJ_BITMAP_LABEL), ocorreu um erro: o objecto é entregue deixando uma barra de um pixel abaixo dele.

Definições de OBJ_BITMAP_LABEL:

x=0,                      // координата по оси X
y=0,                      // координата по оси Y
CORNER_LEFT_UPPER,        // угол графика для привязки
ANCHOR_LEFT_UPPER,        // способ привязки

Isto é, o objecto da etiqueta gráfica é desenhado na parte inferior do gráfico e o centro de coordenadas está no canto inferior esquerdo do gráfico.

De facto, o objecto da etiqueta gráfica não é desenhado por (0;0) coordenadas mas por (0;1) coordenadas com estas definições.

Aqui está uma imagem que mostra uma barra de 1 pixel:

Renderização incorrecta de OBJ_BITMAP_LABEL

Arquivos anexados:
 

Um modelo com uma janela adicional é aplicado ao objecto gráfico e a janela adicional é redimensionada. Depois de fechar e abrir o terminal, o objecto gráfico repõe a altura da janela adicional a zero. Isto é normal?


P.S. Anexei um guião de teste.

Arquivos anexados:
test_script.mq5  13 kb
 
barabashkakvn:

Um modelo com uma janela adicional é aplicado ao objecto gráfico e a janela adicional é redimensionada. Depois de fechar e abrir o terminal, o objecto gráfico repõe a altura da janela adicional a zero. Isto é normal?

Quando o terminal é fechado, o estado dos gráficos é guardado em ficheiros de cristais. Nem todas as propriedades dos objectos gráficos destinados ao controlo do programa são escritas, o que é normal.
Razão: