Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 545

 
Ihor Herasko:

Mostratemi come fate ad avere entrambi. Finora sembra che stiamo parlando della stessa cosa.

No, i valori sono diversi, ho controllato.

Lanciamo questo script sul grafico:

void OnStart()
  {
//---
   int chartHandle=ChartGetInteger(0,CHART_WINDOW_HANDLE);
   int idChart = ChartID(); 
   Alert("CHART_WINDOW_HANDLE = ",chartHandle," idChart=",idChart); 

  }

E otteniamo:


 
khorosh:

No, i valori sono diversi, ho controllato.

Ora capisco di cosa stiamo parlando.

chartHandle è un descrittore della finestra del grafico assegnato al SO. Potete usarlo per indirizzare la finestra da altri thread tramite WinAPI.

idChart è un identificatore grafico interno assegnato dal terminale stesso. Può essere usato solo per lavorare da MQL.

 
Ihor Herasko:

Ora è chiaro di cosa stiamo parlando.

ChartHandle è un descrittore della finestra del grafico assegnato dal sistema operativo. Potete usarlo per indirizzare la finestra da altri thread tramite WinAPI.

idChart è un identificatore grafico interno assegnato dal terminale stesso. Può essere usato solo per lavorare dal MQL.

Capito, grazie!

 
Ihor Herasko:

Ora è chiaro di cosa stiamo parlando.

ChartHandle è un descrittore della finestra del grafico assegnato dal sistema operativo. Potete usarlo per indirizzare la finestra da altri thread tramite WinAPI.

idChart è un identificatore grafico interno assegnato dal terminale stesso. Può essere usato solo da MQL.

Quindi, se avete bisogno di indirizzare alla finestra di un altro terminale aperto, si dovrebbe usare chartHandle? E come determinare l'ID del grafico del simbolo specificato dall'indicatore situato sul grafico di un altro simbolo? Per esempio, ho bisogno che l'indicatore situato sul grafico EURJPY crei un oggetto sul grafico USDJPY. Come posso definire un identificatore del grafico USDJPY?

 
khorosh:

Significa che se avete bisogno di accedere alla finestra di un altro terminale aperto, dovreste usare chartHandle ? E come determinare l'ID del grafico del simbolo specificato dall'indicatore situato nel grafico di un altro simbolo? Per esempio, ho bisogno che l'indicatore situato sul grafico EURJPY crei un oggetto sul grafico USDJPY. Come posso definire un identificatore del grafico USDJPY?

Nell'aiuto ChartID() penso che ci sia un esempio di enumerazione di tutti i grafici terminali.
 
Artyom Trishkin:
Credo che la guida ChartID() abbia un esempio di enumerazione di tutti i grafici terminali.

No, è vuoto. C'è un esempio nell'aiuto di ChartNext. Ok, capito. Non ci sono altre domande. Grazie.

 
khorosh:

Quindi, se volete accedere alla finestra di un altro terminale aperto, si dovrebbe usare chartHandle?

Quando si lavora solo in MQL, chartHandle non è necessario. Una tale necessità può sorgere quando si collega una DLL.

 
Come specificare l'indice della finestra nella funzioneObjectCreate()?

boolObjectCreate(
longchart_id,// identificatore del grafico
stringaobject_name,// nome dell'oggetto
ENUM_OBJECTobject_type,// tipo di oggetto
intsub_window,// indice della finestra
datetimetime1,// tempo del primo punto di ancoraggio
doppioprezzo1,// prezzo del primo punto di ancoraggio
...
datetimetimeN=0,//tempo N-point binding
doublepriceN=0// prezzo N-anchor point
);


 
khorosh:
Come definire l'indice della finestra nella funzioneObjectCreate()?




Non è definito, è impostato.

sottofinestra

[Numero di sottofinestra del grafico. 0 significa la finestra principale del grafico. La sottofinestra specificata deve esistere, altrimenti la funzione restituisce false.

 

WindowFind

WindowsTotal