Не меняются программно настройки индикатора - страница 2

 
xrust:
Так пускай задаст сначала через #property (что бы был начальный цвет ), а потом программно меняет сколько хочет


Конечно же это испробовано

Сейчас баг, имхо, в том, что он историю не отрисовывает вообще никаким цветом

и даже шкалу верт. оси не подгонят под эту константу

 
Nik107:

Вот полный код - добавилась 1 перед Green
Поставил просто константу для простоты - код выполняется, но линия НЕ рисуется в окошке индикатора


Выведите командой Print() значения Bars и IndicatorCounted()
 
PapaYozh:

Выведите командой Print() значения Bars и IndicatorCounted()

   countBars = Bars-IndicatorCounted()-1;
Print("Перебор " + countBars);
Print("Bars =" + countBars + " IndicatorCounted() =" + IndicatorCounted());

2011.03.18 16:03:42 #_x_ EURUSD,M1: Перебор 4161

2011.03.18 16:03:42 #_x_ EURUSD,M1: Bars =4161 IndicatorCounted() =0

XP SP3, Терминал 229 перезагружать пробовал


 
Nik107:


Конечно же это испробовано

Сейчас баг, имхо, в том, что он историю не отрисовывает вообще никаким цветом

и даже шкалу верт. оси не подгонят под эту константу

Приведите весь код, иначе разговаривать не о чем
 

привел его в конце 1-ой стр., повторяю

#property indicator_separate_window
#property indicator_buffers 1

extern string indName = "EUR";

double indBuffer[];
int countBars, indNameN;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()  {
   IndicatorBuffers(1);
   SetIndexBuffer(0,indBuffer); 
   Print("Пишем имя " + indName);  // проверяем
   Print("Bars =" + countBars + " IndicatorCounted() =" + IndicatorCounted());

   IndicatorShortName("#_myInd_" + indName);
   Print("Написали имя " + indName);  // проверяем
   SetIndexStyle(0,DRAW_LINE, STYLE_SOLID, 1, Green);
   countBars = Bars-IndicatorCounted()-1;
   Print("Перебор " + countBars);
   for (int i=countBars;i>=0;i--) {
      indBuffer[i] = 1.367;
      Print("Перебор__ " + i); // проверил - в Эксперте печатает все до 0 
   }

   return(0); }

Вот полный код - добавилась 1 перед Green
Поставил просто константу для простоты - код выполняется, но линия НЕ рисуется в окошке индикатора
Добавил Print("Bars =" + countBars + " IndicatorCounted() =" + IndicatorCounted()); по просьбе PapaYozh 18.03.2011 15:54

 
... эээ я извиняюсь, я думаю вам для начала нужно сюда заглянуть : https://docs.mql4.com/ru/runtime/start
 
Nik107:

привел его в конце 1-ой стр., повторяю

Вот полный код - добавилась 1 перед Green
Поставил просто константу для простоты - код выполняется, но линия НЕ рисуется в окошке индикатора
Добавил Print("Bars =" + countBars + " IndicatorCounted() =" + IndicatorCounted()); по просьбе PapaYozh 18.03.2011 15:54


Перепишите код вот так:

#property indicator_separate_window
#property indicator_buffers 1

extern string indName = "EUR";

double indBuffer[];
int countBars, indNameN;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()  {
   IndicatorBuffers(1);
   SetIndexBuffer(0,indBuffer); 
   Print("Пишем имя " + indName);  // проверяем
   Print("Bars =" + countBars + " IndicatorCounted() =" + IndicatorCounted());

   IndicatorShortName("#_myInd_" + indName);
   Print("Написали имя " + indName);  // проверяем
   SetIndexStyle(0,DRAW_LINE, STYLE_SOLID, 1, Green);

   return(0); }

int start() {
   countBars = Bars-IndicatorCounted()-1;
   Print("Перебор " + countBars);
   for (int i=countBars;i>=0;i--) {
      indBuffer[i] = 1.367;
      Print("Перебор__ " + i); // проверил - в Эксперте печатает все до 0 
   }

   return(0); }
 
вот и я о том же
 
Mathemat:

2 TheXpert: я тоже так же предложил (через property), но топикстартер почему-то считает, что "Цвет именно нужно программно задавать", т.е. это решение типо не программное :)

Так это, одно другого не исключает, изначальный цвет надо задавать, а там меняй сколько хочешь.
 
А вот мне правда интересно, почему изначальный надо задавать - если он все равно отрабатывается в init()?
Причина обращения: