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;
intOnInit()
{
//---
chart_id=ChartID();
//--- set balans indMqlParam 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à.
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).
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;
intOnInit()
{
//---
chart_id=ChartID();
//--- set balans indMqlParam 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)
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?
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
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).
Ecco perché dovete specificare win_ind esplicitamente, altrimenti non funzionerà.
Urain:
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
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
è 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).Leggere attentamente.
https://www.mql5.com/ru/docs/chart_operations/chartindicatorstotal
Leggere attentamente.
https://www.mql5.com/ru/docs/chart_operations/chartindicatorstotal
È questo che intende?
GRAFICO_FINESTRE_TOTALE
Numero totale di finestre del grafico, incluse le sottofinestre dell'indicatore
int r/o
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
Ora sì, tutto funziona automaticamente. Grazie per l'analisi del codice, una testa è buona ma due sono meglio :o)
Taki sì :) Facendo un doppio giro si può passare attraverso tutti gli indici del grafico senza troppi problemi.
Purtroppo no. Il sistema dei mandati non cambierà.