Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 563

 
AlexeyVik:

Ну тогда надо сначала разобраться что ты хочешь написать советник или индикатор...

Может я что-то пропустил, но я понял так что это будет индикатор...

Индикатор у меня уже есть. Советник тоже, но не устраивает скорость оптимизации.

Несколько изменил строки вроде как скорость стала лучше. Не знаю на сколько это правильно?

int counted_bars=IndicatorCounted(),
   i,limit1,limit2,limit3,limit4; 
limit1=Bars-counted_bars-1;
   limit2=limit1;
   limit3=limit2;
   limit4=limit3;
   if(limit1>0) 
     {
      limit1=limit1-Period_MA_1-1;
      limit2=limit1-p2;
      limit3=limit2-p3;
      limit4=limit3-p4;
     }

внутри условного оператора Bars заменил на limit1.

Если правильно понимаю

limit1=Bars-counted_bars;//расчитываем количество непосчитанных баров

а затем вычитаем период и вычисляем остальные переменные.

Одно не понятно как если Bars количество баров в окне вычитаем из него непосчитанные бары.

Чем больше непосчитанных, тем меньше число получается при вычитании и значит итераций в цикле.

А получается наоборот. То есть IndicatorCounted() проще говоря это сколько старых баров начиная с первого?

Изначальный код на стр. 560. Только без этих строк:

double impuls;
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
 

примерно так

int start()
  {
   int counted_bars=IndicatorCounted(),
   i,limit1,limit2,limit3,limit4;
   double impuls;
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
 
   limit1=Bars-counted_bars-1;
   for(i=limit1;i>=0;i--) ExtMapBuffer1[i]=Close[i]-Close[i+Period_MA_1];
   for(i=limit1;i>=0;i--) ExtMapBuffer2[i]=iMAOnArray(ExtMapBuffer1, 0, p2, 0, MODE_EMA,i);
   for(i=limit1;i>=0;i--) ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer2, 0, p3, 0, MODE_EMA,i);
   for(i=limit1;i>=0;i--) ExtMapBuffer4[i]=iMAOnArray(ExtMapBuffer3, 0, p4, 0, MODE_EMA,i);
   return(0);
  }
 
alxm:

Лейбл не следует за графиком...

Сейчас попробовал свойство OBJPROP_XSIZE у объекта LABEL, тоже не работает. Т.е. возвращается 0. Не реализовано что ли?
 
alxm:

Сейчас попробовал свойство OBJPROP_XSIZE у объекта LABEL, тоже не работает. Т.е. возвращается 0. Не реализовано что ли?

На OBJ_LABEL не проверял, а на OBJ_EDIT работает. Кстати тоже можно вместо OBJ_LABEL использовать, даже интересней и цвет фона можно задать и цвет рамки. А если поставить OBJPROP_READONLY = true то ничем от OBJ_LABEL не отличить.


Выглядит так. SPREAD 30 это OBJ_LABEL а остальное OBJ_EDIT

Да, проверил, на OBJ_LABEL не работает.

 
AlexeyVik:

На OBJ_LABEL не проверял, а на OBJ_EDIT работает. Кстати тоже можно вместо OBJ_LABEL использовать, даже интересней и цвет фона можно задать и цвет рамки. А если поставить OBJPROP_READONLY = true то ничем от OBJ_LABEL не отличить.


Выглядит так. SPREAD 30 это OBJ_LABEL а остальное OBJ_EDIT

Да, проверил, на OBJ_LABEL не работает.


Спасибо! А не подскажешь, как с помощью TextOut вывести строку текста на экран. Я не смог разобраться по помощи
 
alxm:

Спасибо! А не подскажешь, как с помощью TextOut вывести строку текста на экран. Я не смог разобраться по помощи
Не пытался разобраться. Может кто из сотрудников MQ подскажет? Заодно и по OBJPROP_XSIZE у объекта OBJ_LABEL объяснят...
 
AlexeyVik:
Не пытался разобраться. Может кто из сотрудников MQ подскажет? Заодно и по OBJPROP_XSIZE у объекта OBJ_LABEL объяснят...


В какую ветку вопрос задать?
 
подскажите как называется скрипт - показывающий историю сделок на демо счете.
 
подскажите пожалуйста как объяснить советнику закрывать всё при касании границы болинжера.
 
Всем привет ....кто подскажет как зафиксировать значение переменной в скрипте?
Причина обращения: