Sie müssen nur eine nicht existierende Fensternummer angeben.
D.h. geben Sie z.B. INT_MAX an. Oder ein negativer Wert (ich habe es nicht selbst ausprobiert, aber als Idee können Sie es versuchen).
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);
}
Deshalb müssen Sie win_ind explizit angeben, sonst wird es nicht funktionieren.
Sie müssen nur eine nicht existierende Fensternummer angeben.
D.h. geben Sie z.B. INT_MAX an. Oder ein negativer Wert (ich habe es nicht selbst ausprobiert, aber als Idee können Sie es versuchen).
Das liegt daran, dass ich es nicht ausprobiert habe, deshalb raten Sie so
OK, wenn Sie die Idee, negative Werte anzugeben, geprüft haben und sie sich nicht bewahrheitet, lassen wir es beim ersten Hinweis bewenden:
"Sie müssen nur eine nicht vorhandene Fensternummer angeben, z. B. INT_MAX". Das heißt, im obigen Beispiel geben Sie an
ChartIndicatorAdd(chart_id,INT_MAX,handle); // указываем заранее несуществующий номер подокна
Oder, in Ihrem Fall, wenn Sie eine nicht existierende Fensternummer angeben, weigert sich die FunktionChartIndicatorAdd zu arbeiten und ein neues Unterfenster zu erstellen?
Übrigens, es ist nicht ganz klar, warum Sie dieselbe Variable in Ihrem Code haben
int win_ind=1;
wird zunächst als vierter Parameter der FunktionIndicatorCreate verwendet (wobei der vierte Parameter == Anzahl der im Array parameters_array[] übergebenen Parameter) und dann als zweiter Parameter der FunktionChartIndicatorAdd(wobei der zweite Parameter == Nummer des Diagrammteilfensters).
Übrigens, es ist nicht ganz klar, warum Sie dieselbe Variable in Ihrem Code haben
Zunächst wird er als vierter Parameter der FunktionIndicatorCreate verwendet (wobei der vierte Parameter == Anzahl der im Array parameters_array[] übergebenen Parameter) und dann als zweiter Parameter der FunktionChartIndicatorAdd(wobei der zweite Parameter == Nummer des Chart-Unterfensters).
Semyon Semyonych, das stimmt. Ich war unvorsichtig, als ich win_ind überall explizit als 1 schrieb und dann, als ich es durch eine Variable ersetzte, alle 1en in win_ind änderte. Das hat dir den Stromschlag verpasst :o)
Der korrekte Code wäre der folgende
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);
}
Nun ja, alles funktioniert automatisch. Danke für das Code-Parsing, ein Kopf ist gut, aber zwei sind besser :o)
Vor etwa sechs Monaten gab es Vorschläge, die Liste der ausstehenden Aufträge zu erweitern. Zum Beispiel zur Einführung von Aufträgen vom Typ OCO usw. Wie ist der aktuelle Stand der Dinge bei diesen Ideen? Können wir auf das Erscheinen (zumindest in einem Jahr) von neuen Arten von anhängigen Aufträgen hoffen?
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Sie müssen nur eine nicht existierende Fensternummer angeben.
D.h. geben Sie z.B. INT_MAX an. Oder ein negativer Wert (ich habe es nicht selbst ausprobiert, aber als Idee können Sie es versuchen).
Deshalb müssen Sie win_ind explizit angeben, sonst wird es nicht funktionieren.
Urain:
Sie müssen nur eine nicht existierende Fensternummer angeben.
D.h. geben Sie z.B. INT_MAX an. Oder ein negativer Wert (ich habe es nicht selbst ausprobiert, aber als Idee können Sie es versuchen).
Das liegt daran, dass ich es nicht ausprobiert habe, deshalb raten Sie so
OK, wenn Sie die Idee, negative Werte anzugeben, geprüft haben und sie sich nicht bewahrheitet, lassen wir es beim ersten Hinweis bewenden:
"Sie müssen nur eine nicht vorhandene Fensternummer angeben, z. B. INT_MAX". Das heißt, im obigen Beispiel geben Sie an
Oder, in Ihrem Fall, wenn Sie eine nicht existierende Fensternummer angeben, weigert sich die FunktionChartIndicatorAdd zu arbeiten und ein neues Unterfenster zu erstellen?
Übrigens, es ist nicht ganz klar, warum Sie dieselbe Variable in Ihrem Code haben
wird zunächst als vierter Parameter der FunktionIndicatorCreate verwendet (wobei der vierte Parameter == Anzahl der im Array parameters_array[] übergebenen Parameter) und dann als zweiter Parameter der FunktionChartIndicatorAdd(wobei der zweite Parameter == Nummer des Diagrammteilfensters).Lesen Sie sorgfältig.
https://www.mql5.com/ru/docs/chart_operations/chartindicatorstotal
Lesen Sie sorgfältig.
https://www.mql5.com/ru/docs/chart_operations/chartindicatorstotal
Ist es das, was Sie meinen?
DIAGRAMM_FENSTER_GESAMT
Gesamtzahl der Diagrammfenster, einschließlich der Indikator-Unterfenster
int r/o
Übrigens, es ist nicht ganz klar, warum Sie dieselbe Variable in Ihrem Code haben
Zunächst wird er als vierter Parameter der FunktionIndicatorCreate verwendet (wobei der vierte Parameter == Anzahl der im Array parameters_array[] übergebenen Parameter) und dann als zweiter Parameter der FunktionChartIndicatorAdd(wobei der zweite Parameter == Nummer des Chart-Unterfensters).Semyon Semyonych, das stimmt. Ich war unvorsichtig, als ich win_ind überall explizit als 1 schrieb und dann, als ich es durch eine Variable ersetzte, alle 1en in win_ind änderte. Das hat dir den Stromschlag verpasst :o)
Der korrekte Code wäre der folgende
Nun ja, alles funktioniert automatisch. Danke für das Code-Parsing, ein Kopf ist gut, aber zwei sind besser :o)
Taki ja :) Mit einer doppelten Schleife können Sie ohne allzu große Mühe alle Tabellenindizes durchlaufen.
Leider nein. Das System der Haftbefehle wird sich nicht ändern.