Пожелания для МТ5 - страница 62

 
Yedelkin:

Надо просто указать номер несуществующего окна.

Т.е., например, указать INT_MAX. Либо отрицательное значение (сам не пробовал, но как идею - можно попробовать).


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

Поэтому приходится задавать явно значение win_ind, иначе работать не будет.

 

Urain:

Yedelkin:

Надо просто указать номер несуществующего окна.

Т.е., например, указать INT_MAX. Либо отрицательное значение (сам не пробовал, но как идею - можно попробовать).

Вот потому что не пробовал, поэтому такое и советуете

ОК, если Вы проверили идею с указанием отрицательных значений и она не подтвердилась - остановимся на первой подсказке:

 "Надо просто указать номер несуществующего окна, например, указать INT_MAX". Т.е. в приведённом примере указать

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

 Или в Вашем случае при указании номера несуществующего окна функция ChartIndicatorAdd  отказывается работать и создавать новое подокно?

Кстати, не совсем понятно, зачем в Вашем коде одна и та же переменная

int win_ind=1;
сначала используется в качестве четвёртого параметра функции IndicatorCreate (где четвёртый параметр == количество параметров, передаваемых в массиве parameters_array[]), а затем - в качестве второго параметра функции ChartIndicatorAdd  (где второй параметр == номер подокна графика).
 
Документация по MQL5: Операции с графиками / ChartIndicatorsTotal
Документация по MQL5: Операции с графиками / ChartIndicatorsTotal
  • www.mql5.com
Операции с графиками / ChartIndicatorsTotal - Документация по MQL5
 
TheXpert:

Читать внимательно.

https://www.mql5.com/ru/docs/chart_operations/chartindicatorstotal

Вы об этом? 

CHART_WINDOWS_TOTAL

Общее количество окон графика, включая подокна индикаторов

int r/o

 
Таки да :) Сделав двойной цикл можно перебрать все индюки чарта без особых проблем.
 
Yedelkin:

Кстати, не совсем понятно, зачем в Вашем коде одна и та же переменная

сначала используется в качестве четвёртого параметра функции IndicatorCreate (где четвёртый параметр == количество параметров, передаваемых в массиве parameters_array[]) а затем в качестве второго параметра функции ChartIndicatorAdd  (где второй параметр == номер подокна графика).

Семён Семёныч, ну точно же. Это я по недогляду прописывал явно везде win_ind как 1 а потом когда заменял на переменную все 1 сменил на win_ind. Вот оно током и шибает :о)

правильный код будет вот такой

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

теперь да, всё работает автоматически. Спасибо за разбор кода, одна голова хорошо а две лучше :о)

 
TheXpert:
Таки да :) Сделав двойной цикл можно перебрать все индюки чарта без особых проблем.
Нормально! Правда, для своих целей удалось обойтись без цикла.
 
С полгода назад высказывались пожелания по расширению списка отложенных ордеров. Например, ввести ордера типа OCO и т.п. Как на сегодняшний день обстоят дела с продвижением этих идей? Можно ли надеяться на появление (хотя бы через год) новых типов отложенных ордеров?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
К сожалению, нет. Ордерная система меняться не будет.
 
Renat:
К сожалению, нет. Ордерная система меняться не будет.
ОК, значит будем исходить из имеющегося.
Причина обращения: