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

 
joo:
... Al giorno d'oggi, puoi disegnare qualsiasi cosa tu voglia con una bitmap in una finestra... è un po' macchinoso, ma puoi fare qualsiasi cosa tu voglia.
Il problema non è che puoi o non puoi disegnare - quello di cui hai bisogno è una finestra del grafico che puoi controllare: spostare, ridimensionare.
 

Come workaround (questa opzione mi sembra brutta) per applicareobj_chart, ma non è possibile applicare il modello ad esso e aggiungere indicatori.

Se fosse possibile aggiungere indicatori aobj_chart, penso che sarebbe una mezza misura accettabile.

 
barabashkakvn:

Come workaround (questa opzione mi sembra brutta) per applicareobj_chart, ma non è possibile applicare il modello ad esso e aggiungere indicatori.

Se fosse possibile aggiungere indicatori aobj_chart, penso che sarebbe una mezza misura accettabile.

È possibile aggiungere indicatori aobj_chart usando MQL5, ma è anche scomodo.
 
tol64:
È possibile aggiungere indicatori aobj_chart usando gli strumenti MQL5, ma è anche scomodo.
Sì, è possibile, usandoOBJPROP_CHART_ID. Mi sono sbagliato - intendevo dire aggiungendo i grafici aobj_chart in una finestra separata.
 
barabashkakvn:

Come workaround (questa opzione mi sembra brutta) per applicareobj_chart, ma non è possibile applicare il modello ad esso e aggiungere indicatori.

Se solo fosse possibile aggiungere indicatori aobj_chart, allora, credo, sarebbe una mezza misura accettabile.

barabashkakvn:
Sì, è possibile, usandoOBJPROP_CHART_ID. Mi sono sbagliato - intendevo aggiungere i grafici aobj_chart nella finestra del separatore.

Ho capito: si può applicare il modello, aggiungere l'indicatore e impostare la finestra di separazione dell'oggettoobj_chart. Così, l'oggetto grafico in questa fase di MQL5 può praticamente essere un sostituto per una finestra di grafico usuale.

Perché praticamente?

Se solo la finestra di separazione dei grafici potesse essere posizionata non solo orizzontalmente, ma anche verticalmente! Allora una finestra di separazione verticale potrebbe diventare un vero e proprio sostituto di una normale finestra del grafico. E la finestra di separazione verticale può essere controllata: può essere ridimensionata. Così, è possibile implementare il controllo delle finestre per mezzo di MQL5 senza WinAPI.

 
barabashkakvn:

Con obj_chart, l'ho capito: puoi applicare un modello e aggiungere un indicatore e una finestra di separazione all'oggettoobj_chart. Così, l'oggetto grafico in questa fase di MQL5 può praticamente essere un sostituto per una finestra di grafico usuale.

Perché praticamente?

Se solo la finestra di separazione dei grafici potesse essere posizionata non solo in orizzontale, ma anche in verticale! Allora una finestra di separazione verticale potrebbe diventare un vero e proprio sostituto della finestra standard del grafico. E la finestra di separazione verticale può essere controllata: può essere ridimensionata. Così, è possibile implementare il controllo delle finestre per mezzo di MQL5 senza WinAPI.

In una finestra di un oggetto grafico, puoi mettere altri oggetti del tipo di grafico. Dati gli eventi grafici esistenti(CHARTEVENT_MOUSE_MOVE) possiamo implementare la gestione degli oggetti. Non è elementare, ma abbastanza fattibile.
 
antt:
Altri oggetti di tipo grafico possono essere posizionati nella finestra dell'oggetto grafico. Dati gli eventi grafici esistenti(CHARTEVENT_MOUSE_MOVE), la gestione degli oggetti può essere implementata. Questo non è elementare, ma abbastanza fattibile.
ChartNavigate() negli oggetti grafico funziona già? In qualche modo avevo inviato una domanda al Service Desk con questa richiesta, ma non ho ancora ottenuto una risposta.
 
tol64:
ChartNavigate() negli oggetti grafico funziona già? Una volta ho inviato una domanda al Service Desk con questa richiesta, ma non ho ancora ricevuto una risposta.

Ha funzionato e funziona. Un semplice esempio:

void OnStart()
  {
   ObjectCreate(0,"chart",OBJ_CHART,0,0,0);
   long id=ObjectGetInteger(0,"chart",OBJPROP_CHART_ID);
   ChartSetInteger(id,CHART_AUTOSCROLL,0);
   ChartNavigate(id,CHART_END,0);
   Sleep(1000);
   ChartNavigate(id,CHART_BEGIN,0);
   Sleep(1000);
   ChartNavigate(id,CHART_END,0);
  }
 
antt:

Ha funzionato e funziona. Un semplice esempio:

Grazie. Si scopre che il mio errore è stato quello di non aver disattivato lo scorrimento automatico nell'oggetto grafico. )

Fantastico. Lo scorrimento orizzontale nell'oggetto grafico può quindi essere implementato da solo.

 
tol64:

Grazie. Si scopre che il mio errore è stato quello di non aver disattivato lo scorrimento automatico nella grafica dell'oggetto. )

Fantastico. Lo scorrimento orizzontale nell'oggetto grafico può quindi essere implementato da solo.

E come far funzionare "Crosshair" nell'oggetto grafico - voglio dire, quando "Crosshair over chart object" è tenuto, i dati OHLC sono visualizzati nella barra di stato?