Wünsche für MT5 - Seite 62

 
Yedelkin:

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;

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);
  }

Deshalb müssen Sie win_ind explizit angeben, sonst wird es nicht funktionieren.

 

Urain:

Yedelkin:

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).
 
Документация по MQL5: Операции с графиками / ChartIndicatorsTotal
Документация по MQL5: Операции с графиками / ChartIndicatorsTotal
  • www.mql5.com
Операции с графиками / ChartIndicatorsTotal - Документация по MQL5
 

Ist es das, was Sie meinen?

DIAGRAMM_FENSTER_GESAMT

Gesamtzahl der Diagrammfenster, einschließlich der Indikator-Unterfenster

int r/o

 
Taki ja :) Mit einer doppelten Schleife können Sie ohne allzu große Mühe alle Tabellenindizes durchlaufen.
 
Yedelkin:

Ü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;

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);
  }

Nun ja, alles funktioniert automatisch. Danke für das Code-Parsing, ein Kopf ist gut, aber zwei sind besser :o)

 
TheXpert:
Taki ja :) Mit einer doppelten Schleife können Sie ohne allzu große Mühe alle Tabellenindizes durchlaufen.
Es ist OK! Aber für meine Zwecke konnte ich die Schleife vermeiden.
 
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?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Leider nein. Das Haftbefehlssystem wird sich nicht ändern.
 
Renat:
Leider nein. Das System der Haftbefehle wird sich nicht ändern.
OK, dann nehmen wir das, was wir haben.
Grund der Beschwerde: