Auguri per MT5 - pagina 62

 
Yedelkin:

Basta specificare un numero di finestra inesistente .

Cioè specificare INT_MAX, per esempio. O un valore negativo (non l'ho provato io stesso, ma come idea si può provare).


int win_ind=1;

int OnInit()
  {
//---
   chart_id=ChartID();
//--- set balans ind

   MqlParam params[1];
   params[0].type         =TYPE_STRING;
   params[0].string_value =name_ind;
   handle=IndicatorCreate(ChartSymbol(chart_id),ChartPeriod(chart_id),IND_CUSTOM,win_ind,params); // вот тут ещё 
                                                                              // прокатит несуществующее окно
   ChartIndicatorAdd(chart_id,win_ind,handle); // а вот тут уже нужно точно знать его номер
   win_ind=ChartWindowFind(chart_id,name_ind); // а получить его можно только тут   
//---
   return(0);
  }

Ecco perché dovete specificare win_ind esplicitamente, altrimenti non funzionerà.

 

Urain:

Yedelkin:

Basta specificare un numero di finestra inesistente .

Cioè specificare INT_MAX, per esempio. O un valore negativo (non l'ho provato io stesso, ma come idea, si può provare).

Questo perché non l'ho provato, ecco perché lo consigliate così

Ok, se avete verificato l'idea di specificare valori negativi e non si rivela vera, fermiamoci al primo suggerimento:

"Basta specificare un numero di finestra inesistente , ad esempio specificare INT_MAX". Cioè, nell'esempio precedente specificare

ChartIndicatorAdd(chart_id,INT_MAX,handle); // указываем заранее несуществующий номер подокна

Oppure, nel tuo caso, quando specifichi un numero di finestra non esistente, la funzioneChartIndicatorAdd si rifiuta di lavorare e di creare una nuova sottofinestra?

A proposito, non è molto chiaro perché hai la stessa variabile nel tuo codice

int win_ind=1;
è usato prima come quarto parametro della funzioneIndicatorCreate (dove il quarto parametro == numero di parametri passati nell'array parameters_array[]) e poi usato come secondo parametro della funzioneChartIndicatorAdd(dove il secondo parametro == numero di sottofinestra del grafico).
 
Документация по MQL5: Операции с графиками / ChartIndicatorsTotal
Документация по MQL5: Операции с графиками / ChartIndicatorsTotal
  • www.mql5.com
Операции с графиками / ChartIndicatorsTotal - Документация по MQL5
 

È questo che intende?

GRAFICO_FINESTRE_TOTALE

Numero totale di finestre del grafico, incluse le sottofinestre dell'indicatore

int r/o

 
Taki sì :) Facendo un doppio giro si può passare attraverso tutti gli indici del grafico senza troppi problemi.
 
Yedelkin:

A proposito, non è molto chiaro perché hai la stessa variabile nel tuo codice

prima è usato come quarto parametro della funzioneIndicatorCreate (dove il quarto parametro == numero di parametri passati nell'array parameters_array[]) e poi è usato come secondo parametro della funzioneChartIndicatorAdd(dove il secondo parametro == numero di sottofinestra del grafico).

Semyon Semyonych, esatto. Sono stato disattento scrivendo win_ind esplicitamente ovunque come 1 e poi, quando l'ho sostituito con una variabile, ho cambiato tutti gli 1 in win_ind. È questo che ti ha dato la scossa elettrica :o)

Il codice corretto sarebbe questo

int win_ind=-1;

int OnInit()
  {
//---
   chart_id=ChartID();
//--- set balans ind

   MqlParam params[1];
   params[0].type         =TYPE_STRING;
   params[0].string_value =name_ind;
   handle=IndicatorCreate(ChartSymbol(chart_id),ChartPeriod(chart_id),IND_CUSTOM,1,params);// 1- количество параметров 
                                                                              
   ChartIndicatorAdd(chart_id,win_ind,handle); // тут поскольку win_ind=-1 создаём новое окно
   win_ind=ChartWindowFind(chart_id,name_ind); // а тут получаем значение win_ind 
//---
   return(0);
  }

Ora sì, tutto funziona automaticamente. Grazie per l'analisi del codice, una testa è buona ma due sono meglio :o)

 
TheXpert:
Taki sì :) Facendo un doppio giro si può passare attraverso tutti gli indici del grafico senza troppi problemi.
Va tutto bene! Ma per i miei scopi sono riuscito ad evitare il loop.
 
Ci sono stati suggerimenti per estendere la lista degli ordini in sospeso circa sei mesi fa. Per esempio, per introdurre ordini di tipo OCO, ecc. Qual è lo stato attuale di avanzamento di queste idee? Possiamo sperare nella comparsa (almeno tra un anno) di nuovi tipi di ordini pendenti?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Purtroppo no. Il sistema dei mandati non cambierà.
 
Renat:
Purtroppo no. Il sistema dei mandati non cambierà.
Ok, allora andiamo con quello che abbiamo.