Si prega di dare più libertà per gestire le finestre del grafico - pagina 6

 
barabashkakvn:
E come si fa a far funzionare "Crosshair" in un oggetto grafico - voglio dire, quando si passa con il mirino sopra un oggetto grafico, i dati OHLC vengono visualizzati nella barra di stato?
Non ho provato a farlo. Forse è possibile con queste funzioni:ChartXYToTimePrice() e ChartTimePriceToXY().
 
tol64:
Non ho provato a farlo. Forse è possibile con queste funzioni:ChartXYToTimePrice() e ChartTimePriceToXY().
È possibile, sembra, solo che non c'è accesso alla linea di stato. Voglio un'imitazione completa di "Crosshair" sull'oggetto grafico, per lavorare come su un grafico normale - con la visualizzazione nella barra di stato.
 
barabashkakvn:
Questo è possibile, credo, tranne che non c'è accesso alla barra di stato. Vorrei un'imitazione completa di "Crosshair" sull'oggetto grafico, in modo che funzioni come un grafico normale - con visualizzazione nella barra di stato.

Poi gli oggetti grafici devono essere ulteriormente sviluppati. Sono a favore di avere più possibilità possibili sia con gli oggetti grafici che con le finestre grafiche. Non vedo alcuna ragione per essere contro, solo per il gusto di essere contro. ;)

Una buona cosa sarebbe raccogliere tutti i casi in cui alcune o altre caratteristiche sono necessarie riguardo a questo problema, e presentarle nel primo post del sondaggio. Il sondaggio dovrebbe essere illimitato nel tempo. Altrimenti spesso affondano e pochi li vedono per il fatto che forse non guardano spesso il forum.

 
Vi suggerisco di mettere qui tutti i casi in cui avete bisogno di un qualche tipo di finestra o funzione di grafico, subito. Discutiamo. Penso che possiamo fare un sondaggio a lungo termine, e poi possiamo spostare tutto questo thread nel sondaggio.
 

Comunque, ecco una semi-sostituzione dei controlli della finestra del grafico:

 

Quando il cursore si sposta su un grafico normale, la barra di stato visualizza i valori OHLC, ma quando il cursore si sposta su un oggetto grafico, i valori OHLC non vengono tradotti nella barra di stato. Poiché MQL non dà accesso alla barra di stato, dobbiamo trovare una barra di stato sostitutiva per l'oggetto grafico.

Finora posso pensare alle etichette di testo OBJ_LABEL.

 
barabashkakvn:

Quando il cursore si sposta su un grafico normale, la barra di stato visualizza i valori OHLC, ma quando il cursore si sposta su un oggetto grafico, i valori OHLC non vengono tradotti nella barra di stato. Poiché MQL non dà accesso alla barra di stato, dobbiamo trovare una barra di stato sostitutiva per l'oggetto grafico.

Finora mi vengono in mente le etichette di testo OBJ_LABEL.

Il nostro supporto tecnico ha risposto che non sarà possibile trasmettere i valori OHLC dalle barre degli oggetti OBJ_CHART alla barra di stato. Pertanto dovremo implementare la nostra barra di stato:

Una propria barra di stato

 

Con il posizionamento della barra di stato (sotto forma di OBJ_BITMAP_LABEL), si è verificato un errore: l'oggetto viene reso lasciando una barra di un pixel sotto di esso.

Impostazioni di OBJ_BITMAP_LABEL:

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

Cioè, l'etichetta grafica dell'oggetto è disegnata nella parte inferiore del grafico e il centro delle coordinate è nell'angolo inferiore sinistro del grafico.

Infatti, l'oggetto etichetta grafica non è disegnato da coordinate (0;0) ma da coordinate (0;1) con queste impostazioni.

Ecco un'immagine che mostra una barra di 1 pixel:

Rendering errato di OBJ_BITMAP_LABEL

File:
 

Un modello con una finestra aggiuntiva viene applicato all'oggetto grafico e la finestra aggiuntiva viene ridimensionata. Dopo aver chiuso e aperto il terminale, l'oggetto grafico azzera l'altezza della finestra supplementare. È normale?


P.S. Ho allegato uno script di prova.

File:
test_script.mq5  13 kb
 
barabashkakvn:

Un modello con una finestra aggiuntiva viene applicato all'oggetto grafico e la finestra aggiuntiva viene ridimensionata. Dopo aver chiuso e aperto il terminale, l'oggetto grafico azzera l'altezza della finestra supplementare. È normale?

Quando il terminale viene chiuso, lo stato dei grafici viene salvato nei file chr. Non tutte le proprietà degli oggetti grafici destinati al controllo del programma vengono scritte, questo è normale.